为了账号安全,请及时绑定邮箱和手机立即绑定

我是用pop删除y第一个元素做的 ,为什么只能循环一次?

1for x in ['1','2','3','4','5','6','7','8']:
2    for y in ['2','3','4','5','6','7','8','9']:
3       print x+y
4    y.pop(0)


        我的思路是这样的:把y.pop(0)循环在x的循环内,等y循环完毕后删除y的第一项元素。

理想状态应该是屏幕输出12,13,14,15,16,17,18,19,

之后pop删除字符串2,

再次循环23,24,25.。。。


运行失败

Traceback (most recent call last):
  File "index.py", line 4, in 
    y.pop(0)
AttributeError: 'str' object has no attribute 'pop'
12
13
14
15
16
17
18
19


正在回答

5 回答

https://img1.sycdn.imooc.com//5b753e0b000157c106280528.jpg

pop不是针对与列表,字典之类方法么

0 回复 有任何疑惑可以回复我~
#1

慕斯卡5257708 提问者

大佬 为什么你能成功?
2018-08-16 回复 有任何疑惑可以回复我~
#2

慕斯卡5257708 提问者

n=[1,2,3,4,5,6,7,8] m=[2,3,4,5,6,7,8,9] for x in n: for y in m: print (x*10+y) print ('\n') m.pop(0) 成功了!!!!! 谢谢!思路还是对的,看来错就错在没有定义变量引用数组
2018-08-16 回复 有任何疑惑可以回复我~
#3

zzluyao 回复 慕斯卡5257708 提问者

???
2018-08-16 回复 有任何疑惑可以回复我~

为什么不添加一个if判断语句 这样不是更好嘛

0 回复 有任何疑惑可以回复我~

代码里提取出的y是str,不是list,没有pop功能。参考代码:

1X = ['1','2', '3', '4', '5', '6', '7', '8', '9']

2Y = ['1', '2','3','4','5','6','7','8','9']

3for x in X:

4    Y.pop(0)

5    for y in Y:

6        s = x + y

7        print(s)


0 回复 有任何疑惑可以回复我~
#1

慕斯卡5257708 提问者

x循环到9的时候,Y.pop(0)删除y的9,变为空值,所以循环失败,print命令不引用,是这样嘛?数组内只有一个元素的时候pop可以删除不报错嘛?
2018-08-16 回复 有任何疑惑可以回复我~
L=['2','3','4','5','6','7','8','9']
for x in ['1','2','3','4','5','6','7','8']:
    for y in L:
      print (x+y)
    L.pop(0)

 第四行的y是会报错的   必须要声明!

0 回复 有任何疑惑可以回复我~
#1

慕斯卡5257708 提问者

谢谢!懂你意思了 要定义一个变量指向,不能直接pop删除一个数组
2018-08-16 回复 有任何疑惑可以回复我~

这样的话在第一遍y循环结束之后y的list就已经没有元素了,这之后在执行y循环应该就走不进去了吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

我是用pop删除y第一个元素做的 ,为什么只能循环一次?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信