Python基础操作_字典的遍历

这篇具有很好参考价值的文章主要介绍了Python基础操作_字典的遍历。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2.3 遍历字典

遍历字典的方式: 1遍历字典的所有的键-值对

2遍历字典的键

3遍历字典的值

2.3.1 遍历所有的键-值对

user_0 = {
    'username':'efermi',
    'first':'enrico',
    'last':'fermi',
    }

获悉字典user_0中的所有信息 for循环

键和值可以为任何名称(变量):k,v

键和值的名称可以根据实际情况来命名,这样容易理解

items() 函数以列表返回可遍历的(键, 值) 元组。

将字典中的键值对以元组存储,并将众多元组存在列表中。

可以用list 函数将items 返回的可迭代序列转化为列表

list_1 = user_0.items() 
list(list_1)            

结果:

Out[2]: [('username', 'efermi'), ('first', 'enrico'), ('last', 'fermi')]

返回值:[(‘username’, ‘efermi’), (‘first’, ‘enrico’), (‘last’, ‘fermi’)]

for key,value in user_0.items():
    print("\nKey: " + key)
    print("Value: " + value)

结果:

Key: username
Value: efermi

Key: first
Value: enrico

Key: last
Value: fermi

或者

for k,v in user_0.items():
    print("\nKey: " + key)
    print("Value: " + value)

结果:


Key: last
Value: fermi

Key: last
Value: fermi

Key: last
Value: fermi

注意:键-值对的返回顺序可能与存储顺序不同,因为python不关心键-值对的存储顺序,

而只跟踪键和值之间的关联关系

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edwaid':'ruby',
    'phil':'python',
    }

键和值的名称可以根据实际情况来命名,这样容易理解

即键和值用描述性语句容易让人理解for循环中在作什么操作

for name,language in favorite_languages.items():
    print(name.title() + "'s favorite languages is " +
          language.title() + ".")

结果:

Jen's favorite languages is Python.
Sarah's favorite languages is C.
Edwaid's favorite languages is Ruby.
Phil's favorite languages is Python.

2.3.2 变量字典中的键 方法keys()

keys函数是Python的字典函数,它返回字典中的所有键所组成的一个可迭代序列。

使用keys()可以获得字典中所有的键。

使用list()函数可将keys()函数返回的可迭代序列转化为列表

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edwaid':'ruby',
    'phil':'python',
    }
for name in favorite_languages.keys():
    print(name.title())

# 这四行代码等价
for name in favorite_languages:
    print(name.title())

结果:

Jen
Sarah
Edwaid
Phil

原因:遍历字典时,会默认遍历所有的键

方式keys()是显示的遍历键

将字典中的键存储到一个names列表中

names = []
names_1 = list(favorite_languages.keys())
for name in favorite_languages:
    t_names = name
    names.append(t_names)
    print(name.title())
print(names)
print(names_1)

结果:

Jen
Sarah
Edwaid
Phil
['jen', 'sarah', 'edwaid', 'phil']
['jen', 'sarah', 'edwaid', 'phil']

使用键遍历的例子:使用当前的键来访问与之相关联的值

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edwaid':'ruby',
    'phil':'python',
    }

friends = ['phil','sarah']
for name in favorite_languages.keys():
    print(name.title())
    
    if name in friends:
        print(" Hi " + name.title() +
              ", I see your favorite language is " + 
              favorite_languages[name].title() + "!")
   

结果:

Jen
Sarah
 Hi Sarah, I see your favorite language is C!
Edwaid
Phil
 Hi Phil, I see your favorite language is Python!

使用keys()确定某个人是否接受了调查

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edwaid':'ruby',
    'phil':'python',
    }

if 'erin' not in favorite_languages.keys():
    print("Erin,please take our poll!")

结果:

Erin,please take our poll!

2.3.3 按顺序遍历字典中的所有键sorted函数

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edwaid':'ruby',
    'phil':'python',
    }
for name in sorted(favorite_languages.keys()):
    print(name.title() + ", thank you for taking the poll.")

结果:

Edwaid, thank you for taking the poll.
Jen, thank you for taking the poll.
Phil, thank you for taking the poll.
Sarah, thank you for taking the poll.

2.3.4 遍历字典中的所有值方法values()

values()返回值:它返回字典中的所有值所组成的一个可迭代序列。

使用list可以去掉dict_value前缀,并转为列表

favorite_languages = {
    'jen':'python',
    'sarah':'c',
    'edwaid':'ruby',
    'phil':'python',
    }
print("The following languages have been mentioned: ")
for language in favorite_languages.values():
    print(language.title())

结果:

The following languages have been mentioned: 
Python
C
Ruby
Python

值去重,可考虑集和

print("The following languages have been mentioned: ")
for language in set(favorite_languages.values()):
    print(language)


list_languages = list(favorite_languages.values())
print(type(list_languages))
print(list_languages)

结果:

The following languages have been mentioned: 
python
ruby
c
<class 'list'>
['python', 'c', 'ruby', 'python']
python,c,ruby,python

另一种遍历值的方法

value = favorite_languages.values()
print(",".join(i for i in value))

结果:

python,c,ruby,python

2-4 嵌套

定义:将一系列字典存储在列表中,或将列表作为值存储在字典中,称为嵌套

2-4-1 字典列表 将字典存到列表中

4、存储字典的列表

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)

结果:

{'color': 'green', 'points': 5}
{'color': 'yellow', 'points': 10}
{'color': 'red', 'points': 15}

外星人有代码自动生成

创建一个用于存储外星人的空列表

aliens = []

创建30个绿色的外星人

for  alien_number in range(30):
    new_alien = {'color':'green','points':5,'speed':'slow'}
    aliens.append(new_alien)
    # 显示前5个外星人
for alien in aliens[:5]:
    print(alien)
print(".......")

结果:

{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
.......

显示创建了多个外星人

print("\nTotal number of aliens: " + str(len(aliens)))

结果:

Total number of aliens: 30

外星人都有相同特征,python中每个外星人都是独立的,所以我们可以对每个外星进行修改

修改前3个外星人特征

创建一个用于存储外星人的空列表

aliens = []

创建30个绿色的外星人

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['points'] = 10

显示前5个外星人

for alien in aliens[:5]:
    print(alien)
print(".......")

结果:

{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
.......

进一步扩展

创建一个用于存储外星人的空列表aliens = []

aliens = []

创建30个绿色的外星人

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['points'] = 10
    elif alien['color'] == 'yellow':
        alien['color'] = 'red'
        alien['speed'] = 'fast'
        alien['points'] = 15

显示前5个外星人

for alien in aliens[:10]:
    print(alien)
print(".......")

结果:

{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'yellow', 'points': 10, 'speed': 'medium'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
{'color': 'green', 'points': 5, 'speed': 'slow'}
.......

应用领域:在网站中位每一个用户创建一个字典,并将字典存储到列表中

(每个字典的结构相同)

遍历列表处理数据

2.4.2 在字典中存储列表 即字典中放列表

5、存储列表的字典

存储所点比萨的信息

pizza = {
    'crust':'thick',
     'toppings':['mushrooms','extra cheese'],
    }

概述所点的比萨

print("You ordered a " + pizza['crust'] + "-crust pizza " +
      "With the following toppings: ")

for topping in pizza['toppings']:
    print('\t' +  topping)

结果:

You ordered a thick-crust pizza With the following toppings: 
	mushrooms
	extra cheese   

一个键关联多个值

favorite_languages = {
    'jen':['python','ruby'],
    'sarah':['c'],
    'edwaid':['ruby','go'],
    'phil':['python','haskell'],
    }

for name,languages in favorite_languages.items():
    if len(languages) == 1:
        print("\n" + name.title() + "'s favorite language is " + languages[0].title()) 
        #  注意只有一个元素在列表中时,要用下标0来获取最后一个元素
    else:
        print("\n" + name.title() + "'s favorite languages are: ")
        for language in languages:
            print("\t" + language.title())

结果:


Jen's favorite languages are: 
	Python
	Ruby

Sarah's favorite language is C

Edwaid's favorite languages are: 
	Ruby
	Go

Phil's favorite languages are: 
	Python
	Haskell

注意:列表和字典的嵌套层级不应该太多

太多的话,应该考虑有更简单的方法

6-4-3 在字典中存储字典

6、存储字典的字典

users = {
    'aeinstein':{
        'first':'albert',
        'last':'einstein',
        'location':'princeton',
        },
    'mcurie':{
        'first':"marie",
        'last':'curie',
        'location':'paris',
        },
    
    }

for username,user_info in users.items():
    print("\nUsername: " + username)
    full_name = user_info['first'] + " " + user_info['last']
    location =  user_info['location']
    
    print("\tFull name: " + full_name.title())
    print("\tLocation: " + location.title())

结果:

Username: aeinstein
	Full name: Albert Einstein
	Location: Princeton

Username: mcurie
	Full name: Marie Curie
	Location: Paris

总结:
1、字典的遍历方法:items()方法:键-值对遍历,返回的值是一个可以迭代序列,list()函数可以将其转为列表
keys()方法:键遍历,返回的值是一个可以迭代序列,list()函数可以将其转为列表
values()方法:值变量,返回值是一个可以迭代序列,list()函数可以将其转为列表
2、嵌套: 在列表中放字典,用于相同属性的对象
在字典中放列表,用于具有相同键的对象
在字典中放置地,用于复制对象
3、在Python对于可迭代的内置数据类型tuple,字符串若放在一个可迭代对象里面,最后一个字符串将以一个个字符变量,因为单个字符串也是可以迭代对象
例子:

tuple_2 = ('你好!')
for ele in list_2:
    print(ele)

结果:文章来源地址https://www.toymoban.com/news/detail-728762.html

你
好
!

到了这里,关于Python基础操作_字典的遍历的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 遍历字典的若干方法

    哈喽大家好,我是咸鱼 我们知道字典是 Python 中最重要且最有用的内置数据结构之一,它们无处不在,是语言本身的基本组成部分 我们可以使用字典来解决许多编程问题,那么今天我们就来看看 如何在 Python 中遍历字典 全文内容:https://realpython.com/iterate-through-dictionary-pytho

    2024年02月10日
    浏览(38)
  • 11.python的字典dict(下) 遍历字典,结构优化

    items() 方法是字典的一个内置方法,用于返回字典中所有键值对的视图(view)。它返回一个可迭代的对象,每个元素都是一个包含键和对应值的元组。 下面用一个例子来说明 items() 方法的用法: 在上述例子中, dict1.items() 返回一个包含所有键值对的视图(view),即 dict_ite

    2024年04月10日
    浏览(42)
  • Python 遍历字典的8种方法

    📚 个人网站:涛哥聊Python 遍历字典是Python中常见的操作,可以很方便的访问字典中的键和值,以执行各种任务。 本文将介绍Python中遍历字典的8种方法,包括for循环、字典方法和推导式等。 使用for循环是最常见的遍历字典的方法。您可以分别遍历字典的键、值或键值对。

    2024年04月27日
    浏览(29)
  • Python中dict字典的多种遍历方式

    可以使用 for key in dict 遍历字典中所有的键 字典提供了 keys () 方法返回字典中所有的键 字典提供了 values () 方法返回字典中所有的值 字典提供了 items () 方法返回字典中所有的键值对 item 键值对 item 是一个元组(第 0 项是键、第 1 项是值) 例子

    2024年02月08日
    浏览(35)
  • Python 遍历结构复杂的多层嵌套字典,收集特定键值对

    可以使用递归函数来遍历整个嵌套层次不同的字典,收集所有感兴趣的键值对,最终得到一个非嵌套结构的字典: (一般用于处理爬取的json数据,因为有些结构真的蛮怪的(メ3[____]

    2024年02月19日
    浏览(36)
  • python基础操作笔记

    一,pickle读写json格式文件pkl 二、docker删除image 三、pandas一些操作 3.1 删除指定列 3.2 列名重命名 四、faiss使用全部GPU,参考博文 五、安装包安装与否的检查

    2024年02月09日
    浏览(90)
  • 【Python数据类型-字典】------- PYTHON基础12

    字典(Dictionary)指一种可变的容器,这个容器可以存储任意类型的数据。 字典里的每个元素为一个键值对, 键值对 格式如下: key : value key 被称为键值,它在字典中的值是唯一的(不能重复)。 value 被称为值,它在字典中可以不唯一(可以重复)。 每个键值对用英文冒号

    2024年02月04日
    浏览(49)
  • Python 基础 - 字典

    1,什么是字典(Dictionary) 字典是pyton提供的一种无序,可变,有键的数据结构,该数据结构包括成对的 key 和 value,key和value没有规定特定的数据类型,可以为任意类型 2,怎么定义一个字典 python字典定义对象时用 { key:value } 表示,如下 例子: test_dict = { 1:\\\'a\\\',2:\\\'b\\\'}   #直接定

    2024年01月17日
    浏览(40)
  • python基础知识(八):字典

    在Python中,字典是一系列键—值对。每个键都与一个值相关联,值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。 字典的创建方法常用花括号生成也可以使用函数dict()创建。 字典元素的获取常用键来获取或者使用get()函数获取。 删除字典元素使用del。

    2024年02月08日
    浏览(49)
  • python笔记:第四章使用字典

    说白了就是键值对的映射关系 不会丢失数据本身关联的结构,但不关注数据的顺序 是一种可变类型 键的类型:字典的键可以是任何不可变的类型,如浮点数,字符串,元组 可以从其他映射或键值对创建字典 将字符串格式设置功能用于字典 使用format_map将两者结合起来 就地

    2024年02月13日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包