在Python列表中混合使用不同类型时是否存在无法预料的问题?例如:
import random
data = [["name1", "long name1", 1, 2, 3],
["name2", "long name2", 5, 6, 7]]
name, long_name, int1, int2, int3 = random.choice(data)
Run Code Online (Sandbox Code Playgroud)
我正在使用这段代码在一个函数中随机设置几个相关的参数,但即使Python支持它,我也担心在列表中混合这样的类型.由于混合数据类型列表不会用于除了变量赋值之外的任何处理(它所分配的变量,而不是列表本身),我认为这很好,但我想确保这一点不是秘密有问题的代码.
Ned*_*der 15
在列表中混合类型时,语言很好,但是你应该知道Python文化可能会对它不屑一顾.当您拥有已知的混合类型集合时,通常会使用元组,并且不同的索引具有不同的语义.列表通常用于具有不同长度的统一序列的位置.
因此,您的数据通常会表示为:
data = [
("name1", "long name1", 1, 2, 3),
("name2", "long name2", 5, 6, 7),
...
]
Run Code Online (Sandbox Code Playgroud)
更简洁地说:元组像C结构一样使用,像C数组一样使用.
在列表中具有多个数据类型没有固有的问题.当然,如果您尝试将该列表用于期望它具有相同类型的某些内容,则可能会出现问题.在您的示例中,如果您正在使用它,那么它就无法成为问题.但是,您可以考虑使用元组而不是列表.按照惯例,当序列的组成固定时使用元组; 您可以在序列中添加或删除列表.
| 归档时间: |
|
| 查看次数: |
58057 次 |
| 最近记录: |