如何构建 FOR 循环以简化嵌套元组
How to structure FOR loop to simplify nested tuple
在我正在编写的 Python 脚本中,我有一个只能在嵌套元组中输出结果的函数,如下所示:
(('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
我需要构造一个 FOR 循环,以便我可以像这样使用元组(作为不可变元组,而不是单个字符串):
('foo', 'bar', 'baz', 'spam', 'eggs')
我是编码新手(更不用说 Python),而且我从来没有特别喜欢循环,但我很确定我需要使用 enumerate()从每个嵌套元组中取出第 0 个条目,并将它们放入新的(?)元组中。这是我的代码...
for count,item in enumerate(tuple):
s = item[0]
item = tuple[count]
如有任何帮助或建议,我们将不胜感激!
在Python中可以这样写:
a, b = ('some', 'tuple')
从元组中获取单个值。您可以在 for
循环中做同样的事情。在你的例子中,每个元组只有一个值,所以你只需要在左侧有一个变量。 (注意逗号!)
stuff = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
for item, in stuff:
print(item)
# Output:
# foo
# bar
# baz
# spam
# eggs
编辑
根据评论,改为将项目放入元组中:
values = tuple(item for item, in stuff)
print(values)
# Output:
# ('foo', 'bar', 'baz', 'spam', 'eggs')
您可以从任何可迭代对象构造元组,如下所示:
tuples = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
values = tuple(t[0] for t in tuples)
print(values)
# -> ('foo', 'bar', 'baz', 'spam', 'eggs')
Python 中的 tuple
是不可变的。
如果您需要可变集合,请使用 list
.
为此,您可以使用理解列表:
values = [t[0] for t in tuples]
print(values)
# -> ['foo', 'bar', 'baz', 'spam', 'eggs']
查阅在线文档,了解更多关于数据结构和List Comprehensions
在我正在编写的 Python 脚本中,我有一个只能在嵌套元组中输出结果的函数,如下所示:
(('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
我需要构造一个 FOR 循环,以便我可以像这样使用元组(作为不可变元组,而不是单个字符串):
('foo', 'bar', 'baz', 'spam', 'eggs')
我是编码新手(更不用说 Python),而且我从来没有特别喜欢循环,但我很确定我需要使用 enumerate()从每个嵌套元组中取出第 0 个条目,并将它们放入新的(?)元组中。这是我的代码...
for count,item in enumerate(tuple):
s = item[0]
item = tuple[count]
如有任何帮助或建议,我们将不胜感激!
在Python中可以这样写:
a, b = ('some', 'tuple')
从元组中获取单个值。您可以在 for
循环中做同样的事情。在你的例子中,每个元组只有一个值,所以你只需要在左侧有一个变量。 (注意逗号!)
stuff = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
for item, in stuff:
print(item)
# Output:
# foo
# bar
# baz
# spam
# eggs
编辑
根据评论,改为将项目放入元组中:
values = tuple(item for item, in stuff)
print(values)
# Output:
# ('foo', 'bar', 'baz', 'spam', 'eggs')
您可以从任何可迭代对象构造元组,如下所示:
tuples = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
values = tuple(t[0] for t in tuples)
print(values)
# -> ('foo', 'bar', 'baz', 'spam', 'eggs')
Python 中的 tuple
是不可变的。
如果您需要可变集合,请使用 list
.
为此,您可以使用理解列表:
values = [t[0] for t in tuples]
print(values)
# -> ['foo', 'bar', 'baz', 'spam', 'eggs']
查阅在线文档,了解更多关于数据结构和List Comprehensions