榄仁榄苟 发表于 2021-9-6 14:58:49

提问!

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

逃兵 发表于 2021-9-6 15:07:06

第一个元素一致
1对应1
2对应2
3对应3
4对应4

榄仁榄苟 发表于 2021-9-6 15:18:29

逃兵 发表于 2021-9-6 15:07
第一个元素一致
1对应1
2对应2


那此时的slogan[]或name[]表示的是一个列表吗

逃兵 发表于 2021-9-6 15:20:39

slogan是list1中的元素
name是list2中的元素

逃兵 发表于 2021-9-6 15:22:28

这个推导式的中文含义
[从list1中提取solgan,从list2中提取name,如果他们的第一个元素一致,那么将name + ':' + slogan 加入到列表中]

逃兵 发表于 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 == name:
            list3.append(name + ':' + slogan)
for each in list3:
    print(each)

榄仁榄苟 发表于 2021-9-6 16:04:17

逃兵 发表于 2021-9-6 15:20
slogan是list1中的元素
name是list2中的元素

可是为什么'1.Jost do It'和'1.耐克'这两个元素是“相等”的呢??

逃兵 发表于 2021-9-6 16:07:27

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

先从列表中取字符串
再看这两个字符串的第一个元素是否相等
这两个字符串的第一个元素相等
就是切片第0个元素

傻眼貓咪 发表于 2021-9-6 16:29:23

arr1 =
# if 是判斷語句,當成立則 arr1 賦值,否則跳過

# 比如:
# 籃球隊 = [某人 for 某人 in 小白學校 if 某人會打籃球]

榄仁榄苟 发表于 2021-9-7 10:12:32

逃兵 发表于 2021-9-6 16:07
先从列表中取字符串
再看这两个字符串的第一个元素是否相等
这两个字符串的第一个元素相等


所以,这些字符串中的1、2、3、4都是一个元素吗

榄仁榄苟 发表于 2021-9-7 10:14:15

逃兵 发表于 2021-9-6 16:07
先从列表中取字符串
再看这两个字符串的第一个元素是否相等
这两个字符串的第一个元素相等


噢噢,我理解了,谢谢带佬!

逃兵 发表于 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' == '1.耐克'
这个就是切片,取里面的第一个元素也就是'1' == '1'
这个条件满足才会去拼接

cleverlo 发表于 2021-9-7 11:14:53

66666666666666666666666666666666666
页: [1]
查看完整版本: 提问!