鱼C论坛

 找回密码
 立即注册
查看: 2099|回复: 12

[已解决]提问!

[复制链接]
发表于 2021-9-6 14:58:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list1 = ['1.Jost do It','2.一切皆有可能','3.让变成改变世界','4.Impossible is nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
#list3 = [y+':"'+x for x in list1 for y in list2 if "1" in x and "1" in y]
list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
for each in list3:
    print(each)
大佬们,请问这个画红线部分的逻辑语句是什么意思呢??

最佳答案
2021-9-6 15:07:06
第一个元素一致
1对应1
2对应2
3对应3
4对应4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-6 15:07:06 | 显示全部楼层    本楼为最佳答案   
第一个元素一致
1对应1
2对应2
3对应3
4对应4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 15:18:29 | 显示全部楼层
逃兵 发表于 2021-9-6 15:07
第一个元素一致
1对应1
2对应2

那此时的slogan[]或name[]表示的是一个列表吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-6 15:20:39 | 显示全部楼层
slogan是list1中的元素
name是list2中的元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-6 15:22:28 | 显示全部楼层
这个推导式的中文含义
[从list1中提取solgan,从list2中提取name,如果他们的第一个元素一致,那么将name + ':' + slogan[2:] 加入到列表中]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-6 15:29:24 | 显示全部楼层
list1 = ['1.Jost do It','2.一切皆有可能','3.让变成改变世界','4.Impossible is nothing']
list2 = ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3 = []
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' + slogan[2:])
for each in list3:
    print(each) 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-6 16:04:17 | 显示全部楼层
逃兵 发表于 2021-9-6 15:20
slogan是list1中的元素
name是list2中的元素

可是为什么'1.Jost do It'和'1.耐克'这两个元素是“相等”的呢??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-6 16:07:27 | 显示全部楼层
榄仁榄苟 发表于 2021-9-6 16:04
可是为什么'1.Jost do It'和'1.耐克'这两个元素是“相等”的呢??

先从列表中取字符串
再看这两个字符串的第一个元素是否相等
这两个字符串的第一个元素相等
[0]就是切片第0个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-6 16:29:23 | 显示全部楼层
arr1 = [a for a in arr2 if a == b]
# if 是判斷語句,當成立則 arr1 賦值,否則跳過

# 比如:
# 籃球隊 = [某人 for 某人 in 小白學校 if 某人會打籃球]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-7 10:12:32 | 显示全部楼层
逃兵 发表于 2021-9-6 16:07
先从列表中取字符串
再看这两个字符串的第一个元素是否相等
这两个字符串的第一个元素相等

所以,这些字符串中的1、2、3、4都是一个元素吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-7 10:14:15 | 显示全部楼层
逃兵 发表于 2021-9-6 16:07
先从列表中取字符串
再看这两个字符串的第一个元素是否相等
这两个字符串的第一个元素相等

噢噢,我理解了,谢谢带佬!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-7 10:18:00 | 显示全部楼层
榄仁榄苟 发表于 2021-9-7 10:12
所以,这些字符串中的1、2、3、4都是一个元素吗

每个列表里面都有4个字符串
每个字符串的开头都是数字类型的字符串
1和1 相同
2和2 相同
...
...
这个列表推导式就是找到这些字符串里面,第一个元素相同的字符串,一一对应起来
然后拼接在一起

与'1.Jost do It' 对应的是'1.耐克'
'1.Jost do It'[0] == '1.耐克'[0]
这个[0]就是切片,取里面的第一个元素也就是'1' == '1'
这个条件满足才会去拼接
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-7 11:14:53 | 显示全部楼层
66666666666666666666666666666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-4 16:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表