Python编程:字典

1.一个简单的字典

alien_0 = {'colors': 'green','points':5}
print(alien_0['colors'])
print(alien_0['points'])

2.使用字典

在Python中,字典是一系列键值对,每个键都与一个值相关联,你可以通过访问键来访问相关联的值。与键相关联的值可以是字符串、数字、列表、字典等等。

在Python中,字典用放在花括号({})里的一系列键值对表示。键值对是一系列相关联的值,指定键时,会返回相关的值。键与值之间用冒号(:)隔开,键值对之间用逗号(,)隔开。

2.1访问字典中的值

要获取与键相关的值,可以依次指定字典名和放在方括号里的键名。

alien_0 = {'colors': 'green','points':5}
new_points = aliens_0['points']
print(f"You just earnd {new_points} points!")

2.2添加键值对

字典是一种动态结构,可以随时在其中添加键值。要添加键值,可以依次指定字典名、用方括号括起来的键名以及相关联的值。

alien_0 = {'colors': 'green','points':5}
print(alien_0)

alien_0['x_poistions'] = 0
alien_0['y_poistions'] = 25
print(alien_0)

注意:字典中的排列顺序与定义是的顺序是一致的。

2.3先创建一个空字典

有时候,我们需要动态地在字典中不断添加键值对,这是,我们可以用花括号({})先创建一个空字典,再分行添加各个键值对。

alien_0 = {}
alien_0['colors'] = 'green'
alien_0['points'] = 5
print(alien_0)

2.4修改字典中的值

要修改字典中的值,可以依次指定字典名、用方括号括起来的键名以及要关联的新值。

alien_0{'colors':'green'}
alien_0['colors'] = 'yellow'

2.5删除键值对

对于字典中不需要的信息,我们可以使用del语句将相应的键值对彻底删除,使用del语句时,必须指定字典名和要删除的键。

alien_0 = {'colors': 'green','points':5}
del alien_0['colors']

注意:删除的键值会永远消失。

2.6由类似对象组成的字典

你可以使用字典来存储众多对象的同一种信息。当你确定要使用多行来定义字典时,要在输入的左花括号({)后按回车键另起一行,然后缩进4个空格,输入指定的第一个键值对,在其后面加一个逗号,在另起一行重复上述操作。最后,另起一行,输入右花括号(})即可。

favorite_languages = {
    'jens': 'python',
    'sarah': 'c',
    'phil': 'python',
}

2.7使用get()来访问值

使用方法get()在指定的键不存在时,可以返回一个默认值。

方法get()的第一个参数用于指定键,必不可少,第二个参数为指定的键不存在时,要返回的值,是可选的,如果没有设定第二个参数,返回的是None。

alien_0 = {'colors': 'green','points':5}
point_value = alien_0.get('points','No point value.')

一般在指定的键可能不存在时,使用方法get()。

3.遍历字典

字典可用于多种方式的储存,因此有多种遍历方式,可遍历字典中的所有键值对、键或值。

3.1遍历所有的键值对

使用for循环可以遍历整个字典,需要使用方法items(),以及需要声明两个变量用于存储键值对中的键和值。

famliy ={
    'first_name': 'Xu',
    'age': '22',
    'city': 'QingDao',
}
for key,value in famliy.items():
    print(f"\nKey:{key}")
    print(f"\nValue:{value}")

3.2遍历字典中的所有键

要遍历字典中的所有键时,方法keys()很有用

favorite_languages = {
    'jens': 'python',
    'sarah': 'c',
    'phil': 'python',
}
friends = ['phil']
for name in favorite_languages.keys():
    print(name.title())
    if name in friends:
        language = favorite_languages[name].title()
        print('I see you')
    

方法key()并非只用于遍历,它返回的是一个列表,其中包含字典中的所有键。

3.3按特定顺序遍历字典中的所有键

要以特定的顺序返回元素,一种方法是在for循环对返回的键进行排序。因此,可以使用函数sorted()来获取以特定顺序排列的键列表的副本。

favorite_languages = {
    'jens': 'python',
    'sarah': 'c',
    'phil': 'python',
}

for name in sorted(favorite_languages.keys()):
    print(name.title())
    

3.4遍历字典中的所有值

如果对字典中的值很感兴趣,可以使用方法values()来返回一个值列表,不包含所有的键。

favorite_languages = {
    'jens': 'python',
    'sarah': 'c',
    'phil': 'python',
}

for language in favorite_languages.values():
    print(language.title())

字典中的值可能是重复项,所以,为剔除重复项,可以使用集合(set),集合中的每个元素都是独一无二的。

favorite_languages = {
    'jens': 'python',
    'sarah': 'c',
    'phil': 'python',
}

for language in set(favorite_languages.values()):
    print(language.title())

注意:可以使用花括号({})直接创建集合,并在其中用逗号分隔元素。

4.嵌套

4.1字典列表

创建一个列表,列表中的每个元素都代表一个字典,即在列表中嵌套字典。

alien_0={'color':'green','points':5}
alien_1={'color':'yellow','points':10}
alien_2={'color':'red','points':15}
aliens=[alien_0,alien_1,alien_2]
for alien in aliens:
    print(alien)

如果列表中要包含的字典数有很多,可以使用以下方法,即先创建一个空列表,再利用.append()将值附加到列表末尾。

aliens=[]
for alien_number in range(30):
    new_alien = {'color':'green','points':5,'speed':'slow'}
    aliens.append(new_alien)
for alien in aliens[:5]:
    print(alien)
print(f"Total number of aliens:{len(aliens)}")

当然,我们也可以使用for循环和if语句来修改列表中某些字典的值。

aliens=[]

for alien_number in range(30):
    new_alien = {'color':'green','points':5,'speed':'slow'}
    aliens.append(new_alien)

for alien in aliens[:3]:
    if alien['color'] == 'green':
    alien['color']='yellow'
    alien['speed']='medium'
    alien['point']=10

for alien in aliens[:5]:
    print(alien)
print(f"Total number of aliens:{len(aliens)}")

4.2在字典中存储列表

有时,我们需要在字典中将一个键关联到多个值时,就可以考略在字典中嵌套列表。

pizza = {
    'crust':'thick',
    'toppings':['mushrooms','extra chesse'],
}
for topping in pizza['toppings']:
    print("\t"+topping)

4.3在字典中嵌套字典

当我们需要在字典中嵌套字典是,代码可能变得复杂起来。

user = {
    'Bod': {
        'first':'albert',
        'last':'einstein',
        'location':'princetion',
    }
}
for username,user_info in user.items():
    print(f"\nUsername:{username}")
    location=user_info['location']
    print(f"\tLocation:{location.title()}")

注意:这样做时,一般要求用户具有相同的结构。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是一个使用字典进行英文文本单词频次统计的Python编程实例:text = 'This is an example of text processing using a dictionary to count the frequency of words in an English text'#Split the text into words words = text.split()#Create an empty dictionary frequency = {}#Loop over the words for word in words: #If the word is not in the dictionary, add it with a count of 1 if word not in frequency: frequency[word] = 1 #If the word is already in the dictionary, increment its count by 1 else: frequency[word] += 1#Print out the frequency of each word for word, count in frequency.items(): print(word + ':' + str(count)) ### 回答2: 以下是一个使用字典进行英文文本单词频次统计的Python编程实例: ```python # 定义一个函数,用于统计英文文本中单词的频次 def count_word_frequency(text): # 将文本转换为小写,并去除标点符号 text = text.lower().replace('.', '').replace(',', '').replace('?', '').replace('!', '').replace(':', '').replace(';', '') # 将文本按照空格分割成单词列表 words = text.split() # 创建一个空字典,用于存储单词及其出现的次数 word_frequency = {} # 遍历每个单词 for word in words: # 如果单词已经在字典中,则将其出现次数加1 if word in word_frequency: word_frequency[word] += 1 # 否则将单词添加到字典,并设置其出现次数为1 else: word_frequency[word] = 1 # 返回单词频次字典 return word_frequency # 输入英文文本 text = "This is a sample text. We will count the frequency of each word in this text sample." # 调用函数统计单词频次 result = count_word_frequency(text) # 输出单词频次 for word, frequency in result.items(): print(f"单词 '{word}' 出现了 {frequency} 次。") ``` 这个程序通过定义一个`count_word_frequency`函数来统计输入文本中每个单词的出现次数。函数首先将文本转换为小写并去除标点符号,然后将文本按空格分割为单词列表。然后,它创建一个空字典`word_frequency`来存储单词及其出现次数。接下来,程序遍历每个单词,如果该单词已经在字典中,则将其出现次数加1;否则,将单词添加到字典并设置其出现次数为1。最后,程序打印出每个单词以及其出现次数。 ### 回答3: 下面是一个使用字典统计英文文本单词频次的编程实例: ```python # 定义一个函数,用于统计文本中每个单词的频次 def count_word_frequency(text): # 创建一个空字典,用于存储单词及其频次 word_frequency = {} # 将文本转换为小写字母并分割成单词列表 words = text.lower().split() # 遍历每个单词 for word in words: # 去除单词中的标点符号 word = word.strip(".,!?:;'") # 如果单词已经在字典中存在,增加频次 if word in word_frequency: word_frequency[word] += 1 # 如果单词不在字典中,将其添加到字典并设置频次为1 else: word_frequency[word] = 1 return word_frequency # 示例文本 text = "Python是一种优雅、易读且功能强大的编程语言。它能够轻松地处理文本数据并进行各种文本操作。Python字典数据结构非常适合用于统计文本中单词的频次。" # 调用函数统计单词频次 result = count_word_frequency(text) # 输出每个单词及其频次 for word, frequency in result.items(): print(word, ":", frequency) ``` 运行以上代码,输出结果为: ``` python : 1 是 : 1 一种 : 1 优雅 : 1 易读 : 1 且 : 1 功能强大 : 1 编程语言 : 1 它能够 : 1 轻松地 : 1 处理 : 1 文本数据 : 1 并 : 1 进行 : 1 各种 : 1 文本操作 : 1 的 : 1 字典数据结构 : 1 非常 : 1 适合 : 1 用于 : 1 统计 : 1 文本中 : 1 单词 : 1 频次 : 1 ``` 以上实例中,我们定义了一个函数`count_word_frequency`,该函数接受一个英文文本作为输入,使用字典`word_frequency`来统计每个单词出现的频次。首先将文本转换为小写字母并分割成单词列表。然后遍历每个单词,去除标点符号,并判断该单词是否已经在字典中存在。如果已经存在,则增加频次;如果不存在,则将其添加到字典并设置频次为1。最后返回字典`word_frequency`作为统计结果。 在示例中,我们使用了一段英文文本作为输入,并输出了每个单词及其出现的频次。这种方法使用字典数据结构可以很方便地统计英文文本中单词的频次,并可以根据实际需求进行各种文本操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值