在 Python 中将逗号分隔的字符串转换为元组
Python 中将逗号分隔的字符串转换为元组:
- 使用
str.split()
方法在每个逗号处拆分字符串。 - 使用
tuple()
类将字符串列表转换为元组。
my_str = 'one,two,three,four,five'
# ✅ 将逗号分隔的字符串转换为元组
my_tuple = tuple(my_str.split(','))
print(my_tuple) # 👉️ ('one', 'two', 'three', 'four', 'five')
# ----------------------------------
my_str = '1,2,3,4,5'
# ✅ 将逗号分隔的字符串转换为整数元组
my_tuple = tuple(int(item) if item.isdigit()
else item for item in my_str.split(','))
print(my_tuple) # 👉️ (1, 2, 3, 4, 5)
# ----------------------------------
# 👇️ 如果字符串有前导或尾随逗号
my_str = ',one,two,three,four,five,'
my_tuple = tuple(item for item in my_str.split(',') if item)
print(my_tuple) # 👉️ ('one', 'two', 'three', 'four', 'five')
第一个示例将逗号分隔的字符串转换为包含字符串元素的元组。
str.split()
方法使用定界符将字符串拆分为子字符串列表。
my_str = 'one,two,three,four,five'
# 👇️ ['one', 'two', 'three', 'four', 'five']
print(my_str.split(','))
my_tuple = tuple(my_str.split(','))
print(my_tuple) # 👉️ ('one', 'two', 'three', 'four', 'five')
该方法采用以下 2 个参数:
- separator 在每次出现分隔符时将字符串拆分为子字符串
- maxsplit 最多完成 maxsplit 拆分(可选)
如果在字符串中找不到分隔符,则返回仅包含 1 个元素的列表。
最后一步是使用 tuple() 类将列表转换为元组。
元组类接受一个可迭代对象并返回一个元组对象。
将逗号分隔的字符串转换为整数元组:
- 使用
str.split()
方法在每个逗号处拆分字符串。 - 将列表中的每个项目转换为整数。
- 使用
tuple()
类将列表转换为元组。
my_str = '1,2,3,4,5'
my_tuple = tuple(int(item) if item.isdigit()
else item for item in my_str.split(','))
print(my_tuple) # 👉️ (1, 2, 3, 4, 5)
我们在每个逗号处拆分字符串,并使用生成器表达式遍历列表。
生成器表达式用于对每个元素执行某些操作或选择满足条件的元素子集。
在每次迭代中,我们检查当前项是否为数字,并使用 int()
类转换匹配元素。
如果字符串中的所有字符都是数字并且至少有 1 个字符,则 str.isdigit
方法返回 True,否则返回 False。
如果我们可以保证字符串仅包含以逗号分隔的整数,则可以跳过对 str.isdigit()
方法的调用。
my_str = '1,2,3,4,5'
my_tuple = tuple(int(item) for item in my_str.split(','))
print(my_tuple) # 👉️ (1, 2, 3, 4, 5)
如果我们的字符串包含前导或尾随逗号,请使用生成器表达式来排除空字符串元素。
my_str = ',one,two,three,four,five,'
my_tuple = tuple(item for item in my_str.split(',') if item)
print(my_tuple) # 👉️ ('one', 'two', 'three', 'four', 'five')
示例中的字符串有一个前导和尾随逗号,因此按逗号拆分将返回空字符串元素。
my_str = ',one,two,three,four,five,'
# 👇️ ['', 'one', 'two', 'three', 'four', 'five', '']
print(my_str.split(','))
我们可以使用生成器表达式从结果中排除空字符串。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。