gpt4 book ai didi

python - 从字符串对象初始化的列表和元组

转载 作者:行者123 更新时间:2023-11-28 20:46:42 28 4
gpt4 key购买 nike

以下两者有何不同:

>>> s = 'string'
>>> tuple(s)
('s', 't', 'r', 'i', 'n', 'g')
>>> tuple([s])
('string',)
>>> tuple((s))
('s', 't', 'r', 'i', 'n', 'g')
>>> tuple((s,))
('string',)
>>>

字符串是一个可迭代对象,这就是为什么它在元组中拆分为多个元素?

最佳答案

元组不是由括号决定的,它们是由逗号决定的:

>>> (1)
1
>>> (1,)
(1,)
>>> (1),
(1,)
>>> 1
1
>>> 1,
(1,)

删除中间括号,直到确定表达式:

>>> tuple((((('string')))))
('s', 't', 'r', 'i', 'n', 'g')
>>> tuple((((('string'))),))
('string',)
>>> tuple((((('string'),)),))
(('string',),)

您会看到 Python 如何使用 ast 解析这些表达式

>>> import ast
>>> ast.literal_eval("((((('string')))))")
'string'
>>> ast.literal_eval("((((('string')))),)")
('string',)

并向您展示为什么 tuple(('string'))tuple('string') 相同。额外的括号不会创建元组,只会被解析器丢弃。

关于python - 从字符串对象初始化的列表和元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20450396/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com