0
這是爲什麼返回in sort_tup_from_list for key, val in tup: ValueError: not enough values to unpack (expected 2, got 1)
解壓Python3中的iterables?
# list with tuples
lst = [("1", "2"), ("3", "4")]
# sorting list by tuple val key
def sort_tup_from_list(input_list):
tmp = []
print(tup)
for tup in input_list:
for key, val in tup:
tmp.append((val, key))
tmp.sort(reverse=True)
return tmp
print(sort_tup_from_list(lst))
當我註釋掉第二for
循環,它打印元組:
lst = [("1", "2"), ("3", "4")]
def sort_tup_from_list(input_list):
tmp = []
for tup in input_list:
print(tup)
# for key, val in tup:
# tmp.append((val, key))
# tmp.sort(reverse=True)
return tmp
print(sort_tup_from_list(lst))
輸出:
('1', '2')
('3', '4')
[]
因此,元組在那裏。他們爲什麼不拆包自己?
因爲你遍歷'tup'。 'tup'的元素是單個字符串。如果你輸入了兩個字符串,他們會用兩個字符解包變量。 –
你是對的!添加兩個字符的字符串按預期工作,但這不是我想要的。問題解決了;) –