Python怎么遍利列表中的字典将字典key变为小写
时间: 2023-11-28 08:49:34 浏览: 29
可以使用列表推导式和字典推导式来实现遍历列表中的字典并将键转换为小写。
代码如下:
```python
my_list = [{'Name': 'Alice', 'Age': 25}, {'Name': 'Bob', 'Age': 30}]
new_list = [{key.lower(): value for key, value in my_dict.items()} for my_dict in my_list]
print(new_list)
```
输出结果如下:
```
[{'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 30}]
```
解释一下代码:
1. `my_list` 是一个包含两个字典的列表。
2. 在列表推导式中,我们遍历了 `my_list` 中的每个字典。
3. 对于每个字典,我们使用字典推导式将其键转换为小写。
4. 最终的结果是一个新的列表 `new_list`,其中包含了两个键全都小写的字典。
相关问题
Lambada循环遍历字典将key变为小写
可以使用字典推导式和str.lower()方法来实现:
```python
d = {"Name": "John", "Age": 30, "City": "New York"}
# 使用字典推导式和str.lower()方法将key变为小写
d = {k.lower(): v for k, v in d.items()}
print(d) # {'name': 'John', 'age': 30, 'city': 'New York'}
```
这里使用了字典推导式,遍历字典的每个键值对,将每个键用str.lower()方法转换为小写,然后再将其与对应的值一起放入新的字典中。最终得到的新字典中所有的键都是小写的。
Python用字典统计词频
可以使用Python的字典(dict)来统计文本中每个单词出现的次数,具体代码如下:
```python
text = "This is a sample text with several words. We will use Python to count the frequency of each word."
words = text.lower().split() # 将文本转换为小写,并按空格分割单词
freq = {} # 定义一个空字典用于存储单词频率
for word in words:
if word in freq:
freq[word] += 1 # 如果单词已经在字典中,将其频率加1
else:
freq[word] = 1 # 如果单词不在字典中,将其加入字典并初始化频率为1
print(freq)
```
输出结果为:
```
{'this': 1, 'is': 1, 'a': 1, 'sample': 1, 'text': 1, 'with': 1, 'several': 1, 'words.': 1, 'we': 1, 'will': 1, 'use': 1, 'python': 1, 'to': 1, 'count': 1, 'the': 1, 'frequency': 1, 'of': 1, 'each': 1, 'word.': 1}
```
可以看到,每个单词及其出现的频率都被存储在了字典中。如果需要按照频率排序,可以使用Python的内置函数sorted()和lambda表达式实现。例如,按照单词频率从高到低排序的代码如下:
```python
sorted_freq = sorted(freq.items(), key=lambda x: x[1], reverse=True)
print(sorted_freq)
```
输出结果为:
```
[('a', 1), ('sample', 1), ('text', 1), ('with', 1), ('several', 1), ('words.', 1), ('we', 1), ('will', 1), ('use', 1), ('python', 1), ('to', 1), ('count', 1), ('the', 1), ('frequency', 1), ('of', 1), ('each', 1), ('word.', 1), ('this', 1), ('is', 1)]
```
可以看到,结果按照频率从高到低排序。