python - 在 Python 中将可变长度字符串拆分为变量的最佳方法是什么?

标签 python

假设我有一串由逗号分隔的可变长度的整数。拆分字符串并将整数存储到变量中的最佳方法是什么?

目前,我有以下内容。

input = sys.argv[1]
mylist = [int(x) for x in input.split(',')]
if len(mylist) == 2: a, b = mylist
else: a, b, c = mylist

有没有更有效的方法?

最佳答案

添加哨兵,然后将列表限制为 3 个元素:

a, b, c = (mylist + [None] * 3)[:3]

现在 a、b 和 c 至少设置为 None,如果项目数超过三个,则只使用前三个值。

演示:

>>> mylist = [1, 2]
>>> a, b, c = (mylist + [None] * 3)[:3]
>>> print a, b, c
1 2 None
>>> mylist = [1, 2, 3, 4]
>>> a, b, c = (mylist + [None] * 3)[:3]
>>> print a, b, c
1 2 3

如果您至少需要 2 个元素,请使用较少的 None 值并捕获 ValueError:

try:
    a, b, c = (mylist + [None])[:3]
except ValueError:
    print "You mast specify at least 2 values"
    sys.exit(1)

关于python - 在 Python 中将可变长度字符串拆分为变量的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11313256/

相关文章:

python - 如何在 AWS Elastic Beanstalk 上配置我的 WSGI 应用程序的名称?

python - 如何将具有多个标题的 CSV 文件读取到 pandas 中的两个 DataFrame 中,一个包含标题,另一个包含删除了一些标题的数据?

python - 是否有用于从远程 zip 检索文件的库?

python - 如何确定语料库中的哪些文本包含Python中的NLTK套件生成的错误?

python - keras 中的 preprocess_input() 方法

python - PyQT5 QComboBox - 获取组合框的值

python - 在Google Colab上通过网络摄像头从视频中实时捕获帧

python - Matplotlib:如何将直方图转换为离散概率质量函数?

python - 将 ttk.Checkbutton 设置为既不打开也不关闭,三态

python - FastAPI:如何通过 API 下载字节