将循环中的值存储在Python

时间:2015-11-05 19:23:29

标签: python

我对python非常陌生并且玩弄循环并坚持基本的怀疑

我试图执行以下操作:

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

我希望输出为序列1到10。 但是我最终得到以下结论:

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

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

8 个答案:

答案 0 :(得分:12)

如果您只想要一个偶数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]

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:2)

元组是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)tup = tuple(range(1,10,2))要好得多(除非您出于某种原因想使用追加)

答案 3 :(得分:2)

了解List Comprehension

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

或者

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

答案 4 :(得分:1)

它是这样的:

print range(1, 11)

答案 5 :(得分:1)

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

print(range(10))

答案 6 :(得分:0)

列出项目

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

表示从1到10

的数字序列

表示范围(1,11)中的i:     S + =(I,)

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

表示步长为2的数字顺序为1到10

X =()

for i in range(1,11,2):     X + =(I,)

从1-9(1,3,5,7,9)打印(x)#odd nos

X =()

for i in range(2,11,2):     X + =(I,)

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

  • 列表项

答案 7 :(得分:0)

通过以下方式将循环中的值存储在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)

P.S。 -这只是用于提示的代码的快照。 希望这可以帮助!!