问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python中的a in b for a in c如何理解?10

发布网友 发布时间:2023-11-19 04:10

我来回答

4个回答

热心网友 时间:2024-03-09 13:55

我很理解你的疑惑,我相信这个对任何一个第一次接触到这种写法的人都有疑惑,不过我已经明白它的执行顺序,其实最容易明白的就是写一个等效写法,“a in b for b in c”的写法跟“x for x in y”的写法并没有本质上的区别,只不过前者输出的b又作为“in”的参数继续运算一次而已(同理它还可以是其它运算,未必是a in b,只不过现在它是一个列表,如果c是一维的列表,那循环一次出来的b就是单个元素,假设它是数字,那就可以执行比如b+1 for b in c这种操作),这种一般都用于生成一个列表,说再多不如举个例子(以下例子皆为实测通过):

```

# 二维数组(在python中这个叫列表)

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


# 简易写法,结果: [7, 8, 9, 1, 2, 3, 4, 5, 6]

l1 = [a for b in c for a in b]

print(l1)


# 常规写法(相当于上边的简易写法),结果: [7, 8, 9, 1, 2, 3, 4, 5, 6]

l2 = []

for b in c:

for a in b:

l2.append(a)

print(l2)


# 上述的a还可以作为参数继续传入其它函数或在表达式中使用,比如作为in的参数,结果: [False, True, False]

# 解释一下执行顺序:先执行for in,循环一次就出来一个b,然后再执行num in b,num in b的结果(True/False)作为列表的

# 一个元素,至此一个循环结束,然后又开始下一个for in循环,直到所有元素循环完,最后产生一个元素值为True/False组成的列表!

num = 3

l3 = [num in b for b in c]

print(l3)


# 上面写法相当于

l4 = []

for b in c:

l4.append(num in b)

print(l4)


# a在表达式中参与表达式运算

# 结果:[8, 9, 10, 2, 3, 4, 5, 6, 7]

l5 = [a+1 for b in c for a in b]

print(l5)


# 该写法是上述写法的常规写法

l6 = []

for b in c:

for a in b:

l6.append(a+1)

print(l6)

```

提交答案后,发现百度会把空格缩进全都去掉,而缩进作为python的灵魂,没有了缩进的python代码根本没办法运行,所以我给你截个图,你复制代码后自己去缩进吧:

python的一种写法:a in b for b in c

又一次修改答案,这次我要吐槽一下,不要来这里问关于代码的问题,前面的代码你也看到了,百度知道根本无法嵌入代码,直接把代码当普通文本,空格缩进全给你去掉,然后我想着,好,文本的空格被你去掉我上传图片总行了吧?结果,这图片被压缩的模糊不清,勉强能看见,将就着看吧。

热心网友 时间:2024-03-09 13:55

这个和x for x in y没什么区别

在迭代c的时候,分别是b里面找a。这个应该是一个列表生成式,结果是false或者true的一个list

如图

热心网友 时间:2024-03-09 13:56

for a in c,循环遍历c中的元素,保存在变量a中。
a in b,判断a是否在b中。
生成一个True或者False的列表。

热心网友 时间:2024-03-09 13:56

in是成员运算符。这个语句中第一个in是对a 是否b成员进行判断;第二个in是列表推导式的语法中的结构,依次迭代C对象元素到a这个变量上。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
显卡降价矿难了!分享几个检测矿卡的实用软件 怎么分辨二手显卡刷bios 下文教你 怎么识别矿卡 鉴别矿卡的方法介绍 怎么设置小度在家回家视频通话? 贵阳砂岩雕塑厂有哪些 西安市长安二中附近有老年公寓没 来西安这么久了第一次租到性价比高的房子,松鼠公寓良心推荐_西安... 陕西省自强中等专业学校2024年学费多少 宝鸡市区有什么比较好的楼盘 乔安如何远程监控 Python中a, b = b, a+b 和 a=b b=a...78 26×187 26×32用简便计算方法? 26✘18+26✘32乘法分配率... 广东头等窗电子科技有限公司怎么样 一年内可以修改几次吗? word目录自动生成后 正文标题前的黑点怎么去掉561 《梦幻西游》“舆图觅宝藏”怎么玩 嘉年华“舆图觅宝藏”玩法介绍_百 ... 大通g5o发动机哪产的;大通g50用了什么发动机 神吕布神愤问题 那去派出所迁户口的人需要本人去吗 26×18 26×32而用最简便的方法计算?1 What should we do to keep heal...6 一个女孩对你忽冷忽热什么意思啊?897 王子文晒新型养生方式,整个人埋在“土”里只露个头,这什么操作?_百度... 一条直线上有四个点,请问这条直线可以分几条线段? 请问济南哪里能买到新鲜的香椿芽吖?2 ...号码注册了两个,旧的被新申请的微信替换了。请问怎么找回旧的... 一年内怎么改第二次 一个女人对你忽冷忽热什么意思326 女人对你忽冷忽热的,是什么意思呢?5 每天洗头都会掉头发,撤除头发没事,但是头顶漩涡处的头发变稀了... 嘉年华小副本攻略 怎样消除大奸大恶人的报复 什么样的人算是大奸大恶?57 罗国起是个大奸大恶的小人,我该怎么办? 虚伪是不是大奸大恶5 多氟多股是什么公司?多氟多股票未来业绩?同花顺多氟多互动平台? 吾以之悲为悲,以之喜为喜,以之爱为爱,这谓何? 吾之素年 汝予锦时是什么意思?7 广东头等窗电子很黑吗 芝香红枣小米饼的做法,芝香红枣小米饼怎么做 ...号码注册了两个,旧的被新申请的微信替换了。请问怎么找回旧的... 我一个手机号同时绑定了两个 现在登不了以前的微信怎么回事? 为什么有那么多人黑关晓彤?就是因为她和鹿晗的关系吗?38 学习桂林米粉 一直在内蒙上学是河北户,高考可以在内蒙参加吗?1 我是山东莱芜的,现在有真空、速冻的槐花和香椿芽,0.5斤包装...4 懒人版松饼的做法步骤图,懒人版松饼怎么做好吃 最详细版香蕉松饼的做法步骤图,怎么做好吃 一个手机号,注册了两个,如果把新注销掉,旧会回来吗...