常に 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
]
この方法では、数値は数値のままであり、常に文字列を結合および分割する必要はありません。
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