bu yüzden bir metin dosyası okuyacak, bir metin satırından gereken bilgileri ayıklayacak bir işlev yazmaya çalışıyorum ve sonra bu bilgiyi bir anahtardaki bir anahtara atayım. python sözlüğü. Ancak burada sahip olduğum bir problem. Python Bir sözlük için birkaç anahtar yapmak için bir dize
def read_star_names(filename):
"""
Given the name of a file containing a star catalog in CSV format, produces a dictionary
where the keys are the names of the stars and the values are Henry Draper numbers as integers.
If a star has more than one name, each name will appear as a key
in the dictionary. If a star does not have a name it will not be
represented in this dictionary.
example return: {456: 'BETA', 123: 'ALPHA', 789: 'GAMMA;LITTLE STAR'}
"""
result_name = {}
starfile = open(filename, 'r')
for dataline in starfile:
items = dataline.strip().split(',')
draper = int(items[3])
name = str(items[6])
result_name[name] = draper
starfile.close()
return result_name
Bu
bu okuma girişimi:0.35,0.45,0,123,2.01,100, ALPHA
-0.15,0.25,0,456,3.2,101 BETA
0.25 , -0.1,0,789,4.3,102, GAMMA; KÜÇÜK YILDIZ
ben yaşıyorum ne sorun döndürür bu olmasıdır: { 'ALPHA':, 123 'GAMMA; KÜÇÜK YILDIZ': 789, 'BETA ': 456} Ben GAMMA'yı ve Little Star, ayrı tuşlar olabilir, ama yine de aynı sayıda başvurmak için, 789.
nasıl sürdürmesi gerektiğini istiyorsun? Metin satırını noktalı virgülle ayırmayı denedim, ancak bu eklenmiş dizinleri ve bunları yönetmek için zor bir zaman geçirdim.
Teşekkürler.
Zaten bütün adlarını içeren bölümünü izole ettik
açıklama gibi isimler ayrı ve bunların her biri için ayrı anahtarları yapmak – Natecat
soruda anlattığınız ile uyuşmuyor! Ayrıca name = str (items [6]) olarak isimlendiriyordum; – Ozzoned