我对python非常陌生并且玩弄循环并坚持基本的怀疑
我试图执行以下操作:
tup1=()
for i in range(1,10,2):
tup1=(tup1,i)
print tup1
我希望输出为序列1到10。 但是我最终得到以下结论:
((((((), 0), 2), 4), 6), 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)
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,11)中的i: S + =(I,)
print(s)#(1,2,3,4,5,6,7,8,9,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。 -这只是用于提示的代码的快照。 希望这可以帮助!!