使用元組拆包這樣,如果你知道總會有3項:
name,type,number = i.split(',')
# now name="Adam", type="widgets", number="5769"
在您的樣本:
for triplet in sod_hng_hhl_lst:
name,type,numberString = triplet.split(",")
# because this is a string and we want a number:
num_as_integer = int(numberString)
# do something with num_as_integer
new_number = num_as_integer * 2
newtriplet = ','.join([name, type, new_number])
不過,我會強烈建議使用值的元組,而不是字符串分裂:
sod_hng_hhl_lst = [ ('Adam', 'widgets', 5769),
#... etc
]
這種方式的數字保持爲一個數字,你不必去joi n和分割字符串。
for idx,triplet in enumerate(sod_hng_hhl_lst):
name,type,number = triplet
new_number = number * 2
# change just the number in the triplet
sod_hng_hhl_lst[idx][2] = new_number
如果人總是有獨特的名字,然後根據mgilson建議你可以使用字典:
dct = {"Adam": ('widgets', 5769),
#....
}
迭代:
for person,details in dct.items():
thing, number = details
new_num = number * 2
dct[person][1] = new_num
你的列表可能看起來像'['Adam,widgets,5769','Adam,balls,7186']'?例如亞當會在那裏兩次嗎?第二個領域的意義是什麼? – mgilson
不,它只是一次 –
你應該真的考慮編寫一個包含這三個屬性的類,然後只保存一個你可以擺弄的對象列表。 –