pop()
>>> str1="上海自来水来自海上">>> list1=list(str1)
>>> list2=[]
>>> for i in list1:
list2=list2+list1.pop()
为什么会报错:
Traceback (most recent call last):
File "<pyshell#101>", line 2, in <module>
list2=list2+list1.pop()
TypeError: can only concatenate list (not "str") to list 数组跟字符不能相加。用append str1="上海自来水来自海上"
list1=list(str1)
list2=[]
for i in list1:
list2.append(list1.pop())
print(list2)
使用了以后运行答应出来这样:['上', '海', '自', '来', '水'] 我想问:为什么只打出来一半,而不是上海自来水来自海上 jerry111 发表于 2018-9-20 16:08
我想问:为什么只打出来一半,而不是上海自来水来自海上
把for循环改为
for i in range(len(list1)):
因为你的循环list1在改变。 jerry111 发表于 2018-9-20 16:08
我想问:为什么只打出来一半,而不是上海自来水来自海上
楼主应该是想打印而已吧?判断回联文的话,不能这样做哦 冬雪雪冬 发表于 2018-9-20 16:27
把for循环改为
for i in range(len(list1)):
因为你的循环list1在改变。
请问改成这样的话执行这条语句的时候 len(list1)不是也会变吗
for i in range(len(list1)):
这个和
for i in list1:
有什么不一样?
循环是怎么改变的可以麻烦大神们详解一下吗 jerry111 发表于 2018-9-20 17:24
请问改成这样的话执行这条语句的时候 len(list1)不是也会变吗
for i in range(len(list1)):
这个和
len(list1)是在初始就确定的,不会因list1的改变而再次改变。
而for i in list1:,为说的清楚,list1改成['1', '2', '3', '4', '5']
循环1,i指向第0个元素,弹出5,list1变成['1', '2', '3', '4']
循环2,i指向第1个元素,弹出4,list1变成['1', '2', '3']
循环3,i指向第2个元素,弹出3,list1变成['1', '2']
循环4,i的指向已经超出了list1,退出循环。
页:
[1]