如何遍历Python中不同长度的字符串元组列表?

我正在尝试遍历不同长度的元组列表。但是,我只是想弄清楚一些事情。

test_list = [("rock", "paper", "scissors"),("go","fish"),("uno")]

for each_tuple in test_list:
    for each_word in each_tuple:
       print(each_word)

这打印

rock
paper
scissors
go
fish
u
n
o

什么是我可以使用的解决方案,以便 uno 打印为“uno”而不是单独的字母 uno。我明白为什么会发生这种情况,但我不确定我应该实施什么来“检查”元组中是否只有一个元素与多个元素。

回答

这是 Python 语法中的一个微妙区别。括号有多种用途,您将看到的大多数括号都属于以下三类之一: (1) 表达式括号,如改变算术的优先顺序;(2) 构造元组;(构建生成器)。

test_list = [("rock", "paper", "scissors"),("go","fish"),("uno")]
test_list = [("rock", "paper", "scissors"),("go","fish"),("uno")]

前两对括号有内部逗号:它们显然是元组。然而,第三个更容易被视为一个简单的表达式,所以它的计算结果只是字符串:

test_list = [("rock", "paper", "scissors"),("go","fish"),"uno"]

为了得到你想要的,用一个简单的逗号强制一个单元素元组:

test_list = [("rock", "paper", "scissors"),("go","fish"),("uno", )]


回答

问题是您没有定义正确的元组。你的迭代很好。

但是你有:

当你应该:

test_list = [("rock", "paper", "scissors"),("go","fish"),("uno",)]

注意多余的逗号。没有它,包围“uno”的括号将被有效地忽略,并且“uno”字符串成为迭代的项目,从而产生单个字符。

这只是在 Python 中指定单元素元组的要求。


以上是如何遍历Python中不同长度的字符串元组列表?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>