首页 > 解决方案 > 如何遍历 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

解决方案


这是 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", )]

推荐阅读