繁体   English   中英

将循环中的值存储在Python中的列表或元组中

[英]Storing values from loop in a list or tuple in Python

我是python的新手,玩弄循环并坚持基本的怀疑

我试图执行以下操作:

tup1=()
for i in range(1,10,2):
 tup1=(tup1,i)
print tup1

我希望out out是序列1到10.但是我最终得到以下结果:

((((((), 0), 2), 4), 6), 8)

如果这种方法是正确的还是有更好的方法来满足要求,请你帮助我吗?

如果你只想要一个偶数1到10的迭代,那么最简单的方法是:

seq = range(2, 11, 2)

如果您这样做是为了学习Python并且想要构建自己的数据结构,请使用列表:

l = []
for i in range(2, 11, 2):
    l.append(i)

上面的for循环可以重写为列表理解:

l = [i for i in range(2, 11, 2)]

或在循环理解中使用if子句:

l = [ i for i in range(1, 11) if i % 2 == 0]

您可以使用+=运算符将项附加到元组。

tup1=()
for i in range(1,10,2):
   tup1+= (i,)
print tup1

打印(1, 3, 5, 7, 9)

元组是Python中的不可变对象。 这意味着你无法修改它们。 你现在正在做的是创建一个包含前一个元组的新元组

你可以这样做:

lst = []
for i in range(1,10,2):
  lst.append(i)
tup = tuple(lst) #If you really want a tuple
print tup

但是lst = range(1,10,2)lst = range(1,10,2) tup = tuple(range(1,10,2))要好得多(除非你因为某些原因想使用append)

阅读列表理解

tuple(i for i in range(1, 10, 2))

要么

tup1 = ()
for i in range(1, 10, 2):
 tup1 += (i,)
print tup1

它是这样的:

print range(1, 11)

for i in range(1,10,2):使用for i in range(1,10,2):跳过两个for i in range(1,10,2):如果for i in range(1,11):使用for i in range(1,11): if将增加1.至于tup1=(tup1,i)你经常向对方添加元组,这会产生奇怪的输出。 如果要存储它们,可以使用列表。 否则使用会做得很好:

print(range(10))

项目清单

要附加到列表或元组中,您可以使用append()函数,也可以使用+ =运算符来执行相同操作。 S =()

数字序列从1到10

对于范围内的i(1,11):s + =(i,)

print(s)#(1,2,3,4,5,6,7,8,9,10)

数字序列从1到10,步长为2

X =()

对于范围内的i(1,11,2):x + =(i,)

print(x)#odd nos from 1-9(1,3,5,7,9)

X =()

对于范围内的i(2,11,2):x + =(i,)

print(x)#even nos from 2-10(2,4,6,8,10)

  • 项目清单

通过以下方式将循环中的值存储在Python中的列表或元组中 -

- >通过在列表中添加值(此处为new_data1),因为连接在此处不起作用。

new_data1 = []
for line in all_words:
    new_data=' '.join(lemmatize_sentence(line))
    new_data1.append(new_data)
    #print (new_data)
print (new_data1)

PS - 这只是代码的快照,仅用于提示。 希望这可以帮助!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM