【发布时间】:2020-05-19 10:55:30
【问题描述】:
我的目标:了解为什么以下函数“更改”对于输入“单个元组的列表”和“单个元组的元组”的行为不同。
我在不同程序的“更改”中使用列表推导式,惊讶地发现两个输入的行为不同。
def change(entries):
return ['\t'.join(entry) for entry in entries]
entry_tuple_list = [('val1', 'val2')]
print(change(entry_tuple_list)) #Evaluates to ['val1\tval2']
entry_tuple_tuple = (('val1', 'val2'))
print(change(entry_tuple_tuple)) #Evaluates to ['v\ta\tl\t1', 'v\ta\tl\t2']
expected_result = ['val1\tval2']
我希望 both entry_tuple_list 和 entry_tuple_tuple 在函数中显示相同的行为并变成 ['val1\tval2'] 的 expected_result。
您在 code-cmets 中看到的情况并非如此。 为什么这两个输入会导致不同的输出?
【问题讨论】:
-
Single element tuples require comma 否则它不是一个元组。
标签: python python-3.x list tuples list-comprehension