Python中如何将元组列表中的字段转换为小写

[(‘ORG_CODE’, ‘varchar(30)’, ‘YES’,None), (‘AREA_CODE’, ‘varchar(30)’, ‘YES’, None)]
把元组中第一个字段变为小写
[(‘org_code’, ‘varchar(30)’, ‘YES’,None), (‘area_code’, ‘varchar(30)’, ‘YES’, None)]
Python中如何将元组列表中的字段转换为小写

5 回复

元组不能改,只能用新元组替换。


# 假设你有一个包含元组的列表,每个元组包含字符串字段
data = [('APPLE', 'Banana', 'Cherry'), ('DOG', 'Cat', 'ELEPHANT')]

# 方法1:列表推导式(最简洁)
lowercase_data = [tuple(item.lower() for item in tup) for tup in data]
print(lowercase_data)  # 输出:[('apple', 'banana', 'cherry'), ('dog', 'cat', 'elephant')]

# 方法2:使用map函数(函数式编程风格)
lowercase_data = list(map(lambda tup: tuple(map(str.lower, tup)), data))
print(lowercase_data)

# 方法3:显式循环(更易读)
result = []
for tup in data:
    new_tup = tuple(s.lower() for s in tup)
    result.append(new_tup)
print(result)

# 如果元组包含非字符串类型,需要先检查类型:
mixed_data = [('APPLE', 123, 'Cherry'), ('DOG', True, 'ELEPHANT')]
safe_lower = [tuple(str(item).lower() if isinstance(item, str) else item for item in tup) 
              for tup in mixed_data]
print(safe_lower)  # 输出:[('apple', 123, 'cherry'), ('dog', True, 'elephant')]

核心思路:使用嵌套的生成器表达式遍历每个元组的每个元素,对字符串调用.lower()方法。选择方法1的列表推导式通常最直接。

一句话建议:用列表推导式配合生成器表达式最简洁。

tuple 是只读的

<br>list1 = [('ORG_CODE', 'varchar(30)', 'YES',None), ('AREA_CODE', 'varchar(30)', 'YES', None)]<br><br>list1[0] = (list1[0][0].lower(), 'varchar(30)', 'YES',None)<br><br>print(list1)<br>

>>> list1 = [(‘ORG_CODE’, ‘varchar(30)’, ‘YES’,None), (‘AREA_CODE’, ‘varchar(30)’, ‘YES’, None)]
>>> list_new = [tuple([t[0].lower()]+list(t[1:])) for t in list1]
>>> list_new
[(‘org_code’, ‘varchar(30)’, ‘YES’, None), (‘area_code’, ‘varchar(30)’, ‘YES’, None)]
>>>

回到顶部