axllen 发表于 2021-2-4 11:14

python多重赋值

本帖最后由 axllen 于 2021-2-4 12:19 编辑

想把一个字符串的值赋给几个变量,这样的话没有问题
str1 = '1/2/3'
a, b, c = str1.split('/')

加上一个判断条件就有问题了,a 的结果为['1', '2', '3'],b 和 c 是空
a, b, c = str1.split('/') if str1 != '' else '', '', ''

如果这样判断又没问题
if str1 != '':
    a, b, c = str1.split('/')
else:
    a, b, c = '', '', ''

求指教,谢谢!

cqfcy 发表于 2021-2-4 11:17

本帖最后由 cqfcy 于 2021-2-4 11:21 编辑

a, b, c = str1.split('/') if (str1 != '') else ('', '', '')
逗号不是运算符而是表达式之间的分隔符,应该理解成这样了
a, b, c = (str1.split('/') if str1 != '' else ''), '', ''

我心飞翔1995 发表于 2021-2-4 11:34

这才是正确的解包姿势
a, b, c = str1.split('/') if (str1 != '' ) else ('', '', '')

麦瑞考 发表于 2021-2-4 11:37

哈哈我还以为发的赛风呢刚准备下载冲个浪{:1_924:}

axllen 发表于 2021-2-4 12:19

谢谢楼上的讲解
页: [1]
查看完整版本: python多重赋值