首页 > 解决方案 > 在 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)导致Trueprint(a==2)会导致False

这引出了最后一个问题,int、float 或 string 类型的变量是否可以同时保存多个值?即,如果它不是列表或字典,a两者都是?12

标签: python

解决方案


不,您不能将多个值分配给单个变量。

如果 x 为假,则表达式x or y返回,否则返回。yx

一个字符串只有在它为空时才计算为假。你的字符串"b"不是空的,所以它永远不会是假的。因此,该表达式"b" or []无法等于[],它将永远是"b"


推荐阅读