python for i in 字符串_Python for循环中的in

本文介绍了Python中for循环的语法格式,in后面可跟列表、元组、字符串等可索引序列。执行for循环时,迭代变量依次被赋值序列元素,且是浅拷贝。通过两个例子说明浅拷贝对列表元素修改的影响,解释了不同情况的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for循环的语法格式如下:

for iterating_var in sequence:

statement(s)

in 后面跟的是一个序列,如列表、元组、字符串

序列都有一个特征,就是可以进行索引操作,如sequence[0]、sequence[1]

当for被执行时,iterating_var 依次被赋值sequence[0]、sequence[1]、……

注意这里的赋值是浅拷贝

看下面两个例子

1.

a = [[1,2]]

for i in a:

i[0] = 3

print a

[[3, 2]]

这个循环只循环一次,因为列表a中只有一个元素,即a[0] = [1,2],可以用C语言思想去理解a[0]中存放的是列表[1,2]的地址

所以i = a[0]时i中存放的也是列表[1,2]的地址,故i[0] = 3作用相当于a[0][0] = 3

2.

a = [1,2]

for i in a:

i = 5

print a

[1, 2]

这里的i = 5,已经和a没有任何关系了,因为是浅拷贝,所以i只保存了a中元素的值,i再怎么改变也不会影响a

所以print a 还是 [1,2]

那为什么1中的[[1,2]]就变成[[3,2]]呢,那是因为i虽然只保存了a中的值(浅拷贝),但是在1中,a中的值如a[0]它本身就是[1,2]的地址,所以使用这个地址仍然可以通过索引对[1,2]中的元素进行访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值