【python 中的for循环】可以动态修改循环范围吗?

【python 中的for循环】可以动态修改循环范围吗?

无声静候 发布于 2021-11-30 字数 1046 浏览 972 回复 5

R.T.
可以写成这样的代码吗?

file=open('roemo.txt')
list_1=list()
for line in file:
line.rstrip()
#line.split()这样得到的line是一个整体(list的一个元素),把string转化为list
#list_1.append(line) 循环文件中的行数(4行)后,得到是4个元素
line.split()#返回的是一个字符串
list_1=list_1+line.split()
print list_1
print type(line.split())

#----------------------------------------------------------------------

以上是从文件里,把所有单词装到list里面,代码可以运行并且得到满意结果。

#下面是把list_1里面重复的元素给去掉

list_2=list() #新建list_2空的

#遍历list_1中的每一个元素
for i in list_1:
for j in list_2:
#和list_2里的所有元素比较,如果不同,则填充到list_2里面。
if i!=j:
#list_2不断增多。
list_2.append(i)
print list_2

问题来了:list_2的元素是空的!

list_2好像从被定义为空的以后,就没有增加过其中元素。

新人小白刚开始学python,请前辈纠正错误。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

把昨日还给我 2021-12-01 5 楼

if i not in list_2:

    list_2.append(i)

离不开的别离 2021-12-01 4 楼

在for循环里,for i in list_2中,list_2不随着循环里的list_2变化而变化吗?

躲猫猫 2021-12-01 3 楼

回复
虽然Python里支持循序的过程中修改列表,但因为你这边list_2是空的,所以第二层循环的代码根本没机会去执行。

彼岸花ソ最美的依靠 2021-12-01 2 楼

回复
可是我刚刚把list_2的初始值给换成' '(空格),代码执行下去,list_2得到的还是空的...能不能有什么方法,把这个list_2的for循环改一下?(我知道有更简单的去重方法,可是我很想搞懂这个list_2的for循环究竟怎么改才能生效)

谁的新欢旧爱 2021-12-01 1 楼

因为list_2是空的,所以第二层循环一直就没执行过。

你要获得不重复的list,就用:list_2 = list(set(list_1)) 好了