ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

第1001次python入门——Day06

2021-03-22 22:34:08  阅读:158  来源: 互联网

标签:name python Day06 char person key print 1001 字典


目录

元组的使用

#元组和列表很像,都是用来保存多个数据
#使用一对小括号()来表示
#元组和列表的区别,列表可变,元组是不可变的
words = ['hello', 'yes', 'good', 'hi']  #列表,使用[]表示
nums = (9, 4, 3, 1, 7, 6, 9) # 元组,使用()来表示

# 和列表一样,也是一个有序的存储数据的容器
#可以通过下标来获取元素
print(nums[3])
# nums[3] = 40  #元组是不可变数据类型,不能修改
print(nums.index(7))
print(nums.count(9))

# 特殊情况:如何表示只有一个元素的元组,需要在后面加上 ',' 逗号
#ages = (18)   # 这种书写方式,ages是一个整数
ages = (18,)
print(type(ages))

# tuple 内置类
# print(tuple(18))
print(tuple('hello'))  # ('h', 'e', 'l', 'l', 'o')

# 怎样把列表转换为元组?元组转换为列表?
print(tuple(words))  # tuple list set都是这样用的
print(list(nums))

#元组也可以遍历
for i in nums:
    print(i)

j = 0
while j < len(nums):
    print(nums[j])
    j += 1

字典的使用

# 列表一般情况下可以存储任意数据类型,但是一般情况下,我们存储单一数据类型
names = ['zhangsan', 'lisi', 'wnagwu']
scores = [100, 98, 99, 97]

#这个列表里面的每个元素到底代表的什么?
#列表只能存储值,但是无法对值进行描述
# person = ['zhangsan', 18, 98, 97, 95, 93, 180, 150]


# 字典不仅能保存值,还能对值进行描述
# 使用大括号来表示一个字典,不仅有值value,还有值key
# 字典里的数据都是以键值对key-value的形式保留的
# key和value之间使用冒号:来连接

# 多个键值对之间使用逗号,来分割
person = {'name': 'zhangsan',
          'age': 18,
          'math': 98,
          'Cinese': 95,
          'English': 95,
          'PE': 93,
          'height': 180,
          'weight': 100
          }

字典使用注意事项

person = {
    'name': 'zhangsan',
    'age': 18,
    'height': 180,
    'age': 20,
    'isPass': True,  #可以是bool值
    'hobbies': ['唱', '跳', '篮球', 'rap'], # 也可以是列表
    4: 'good',  # key只能是不可变数据类型
    ('yes', 'hello'): 100,
    # ['ok', 'no']: 'hi'   #注意:key只能是不可变数据类型
}

# 1.字典里的key不允许重复,如果key重复,后一个key对应的值会覆盖前一个
# 2.字典里的value可以是任意数据类型,但是key只能使用不可变数据类型,一般使用字符串
print(person) # {'name': 'zhangsan', 'age': 20, 'height': 180}

从字典里获取数据

person = {'name': 'zhangsan', 'age': 18, 'x': 'y'}

# 查找数据(字典的数据在保存时,是无序的,所以不能用下标来获取)
print(person['name'])  #使用key获取到对应value
# print(person['height'])  查找的key不存在会直接报错

# 需求:获取一个不存在的key时,不报错,如果这个key不存在,使用默认值
# 使用字典的get方法,如果key不存在,会默认返回None,而不报错
# get方法只是设定默认值,不会往列表里面添加元素
print(person.get('height'))  #None

# 如果根据key获取不到value,使用给定的默认值
print(person.get('gender', 'female'))  # female
print(person.get('name', 'lisi'))  # zhangsan

print(person)



# x = 'age'
# print(person[x])
# print(person['x'])

修改,新增和删除数据

person = {'name': 'zhangsan', 'age': 18, 'addr': 'Beijing'}
print(person['name'])

# 直接使用key可以修改对应的value
person['name'] = 'lisi'

# 如果key存在,是修改对应的value;
# 如果key在字典里不存在,会往字典里添加一个新的key-value

person['gender'] = 'female'
print(person)

# 删除name对应的键值(非键值对)
person.pop('name')
print(person)


#popitem删除一个元素,结果是被删除的这个元素组成的键值对
result = person.popitem()
print(result)
print(person)


del person['addr']
print(person)

person.clear()  # 用来清空一个字典
print(person)   # {}

update方法的使用

# 列表可以使用extend方法将两个列表合并成一个列表
nums1 = [1, 2, 3, 4, 5]
nums2 = [6, 7, 8, 9]
nums1.extend(nums2)
print(nums1)

words1 = ('hello', 'good')
words2 = ('yes', 'ok')
print(words1 + words2)  # ('hello', 'good', 'yes', 'ok')words1,words2都没有变


person1 = {'name': 'zhangsan', 'age': 18}
person2 = {'addr': 'Beijing', 'height': 180}
person1.update(person2)
print(person1)

# print(person1 + person2) 注意:字典之间不支持加法运算

字典的遍历

person = {'name': 'zhangsan', 'age': 18, 'addr': 'Beijing'}

# 特殊在列表和元组是单一的数据,但是字典的键值对的形式

# 第一种遍历方式:直接for in 循环
for x in person:   #for in循环获取的是key
    print(x, '=', person[x])

# 第二种方式:获取到所有的key,然后再遍历key, 根据key获取value
print(person.keys())   # dict_keys(['name', 'age', 'height'])
for k in person.keys():
    print(k, '=', person[k])

# 第三种方式:获取到所有value,只有值,没有key
for v in person.values():
    print(v)

# 第四种方式:
# print(person.items())   # dict_items([('name', 'zhangsan'), ('age', 18), ('addr', 'Beijing')])
# for item in person.items():  # 列表里的元素是元组,把元组当做整体进行遍历
#     print(item[0], '=', item[1])

for k, v in person.items():
    print(k, '=', v)

字典的练习

chars = ['p', 'a', 'b', 'x', 'd', 'p', 'a', 'm', 'q', 't', 'p', 'a', 't', 'c']

char_count = {}  # 设置一个字典

for char in chars:
    if char in char_count:
        print('字典里面已经有字符了%s' % char)
        char_count[char] += 1
    else:
        char_count[char] = 1
        print('字典里面没有这个字符%s' % char)

print(char_count)

char_count2 = {}

for char in chars:
    if char not in char_count2:
        char_count2[char] = chars.count(char)

print(char_count2)

# print(words.count('a'))

vs = char_count.values()

# 取最大数可以使用内置函数max

max_count = max(vs)

for k, v in char_count.items():
    if v == max_count:
        print(k)

字典的练习

persons = [
    {'name': 'zhangsan', 'age': 18},
    {'name': 'lisi', 'age': 20},
    {'name': 'wangwu', 'age': 19},
    {'name': 'jerry', 'age': 21}
]

# 让用户输入姓名,如果姓名已经存在,提示用户;如果姓名不存在,继续输入年龄,存入到列表

x = input('请输入您的姓名:')

for person in persons:
    # if name in person:  # in 运算符,如果直接用在字典上,是用来判断key是否存在,而不是value
    if person['name'] == x:
        print('您输入的名字存在')
        break
else:
    print('名字不存在')
    # 创建一个新的字典 new_person
    new_person = {'name': x}
    y = int(input('请输入你的年龄:'))
    new_person['age'] = y

    ##把这个新的数据存储到 persons 列表里面

    persons.append(new_person)
    print('用户添加成功')

print(persons)

字典的练习

dict1 = {"a": 100, "b": 200, "c": 300}

dict2 = {}

# for k, v in dict1.items():
#     dict2[v] = k
# print(dict2)   #{100: 'a', 200: 'b', 300: 'c'}

dict1 = {v: k for k, v in dict1.items()}   # 字典推导式
print(dict1)   #{100: 'a', 200: 'b', 300: 'c'}


#{100:"a", 200:"b", 300:"c"}

标签:name,python,Day06,char,person,key,print,1001,字典
来源: https://blog.csdn.net/Thorne_lu/article/details/115102435

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有