python - 在 python 中为单个 int 或 float 或 string 变量分配多个值。可能吗?
问题描述
最近我遇到了某人的代码:
b = {
'b': "b" or []
}
当我做 aprint(b)
我得到{'b': 'b'}
. 这让我质疑什么b
时候会[]
?还是说两者b
兼而有之?"b"
[]
但如果是这样的话:
a = (1 or 2)
print(a == 1)
print(a == 2)
为什么会print(a == 1)
导致True
但print(a==2)
会导致False
?
这引出了最后一个问题,int、float 或 string 类型的变量是否可以同时保存多个值?即,如果它不是列表或字典,a
两者都是?1
2
解决方案
不,您不能将多个值分配给单个变量。
如果 x 为假,则表达式x or y
返回,否则返回。y
x
一个字符串只有在它为空时才计算为假。你的字符串"b"
不是空的,所以它永远不会是假的。因此,该表达式"b" or []
无法等于[]
,它将永远是"b"
。
推荐阅读
- javascript - 从 AsyncStorage 读取,解析数组,将字符串转换为日期对象
- c++ - fd 无效后,阻塞模式下的 recvmsg 仍然有效
- symfony - symfony 功能测试:更改基本 url
- javascript - 减少对象数组并计算其数组的值
- c++ - 如何使用 Qt 发出简单的 Http 请求?http 请求在 URL 中包含百分比编码
- pentaho - 如何并行运行 Pentaho 转换并限制执行器数量
- css - 无法使用 LESS 更改主按钮颜色(ant.design)
- r - RMarkdown:使用循环在同一块中的多个ggplots
- python - 从具有重复列值的数据框中创建字典
- r - 为什么我不能计算平均值?