07、数据容器

# 数据容器

# list、tuple、str、set、dict
# 元素可以修改:list、dict、set
# 元素不可以修改:tuple、str

# list

# 删除元素
# del:根据下标进行删除
# pop:删除最后一个元素 也可以传入下标去指定删除
# remove:根据元素的值进行删除,如果列表中存在多个同名元素只会删除第一个,后面的不会删除

# 列表的基本操作:增加元素、合并列表、查找元素、查找下表
# a = [21, 25, 21, 23, 22, 20]
# a.append(31)
# print(a)
# b = [29, 33, 30]
# a.extend(b)
# print(a)
# print(a[0])
# print(a[-1])
# print(a.index(31))
# count(1)  # 获取某个元素个数


#   取出列表中的偶数,加入到另一列表中for、while
# a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# b = []
# c = []
# for i in a:
#     if i % 2 == 0:
#         b.append(i)
# print(b)
#
# index = 0
# while index < len(a):
#     if a[index] % 2 ==0:
#         c.append(a[index])
#     index +=1
# print(c)

# 列表推导式

# tuple

a_tuple = (1,2,3,4)
a_tuple[0]  # 1

# a_tuple[3] = 5 # 这会报错,不能修改元素
# 注意,元素只有一个元素的元组,需要在唯一的元素后写一个逗号
a = (11,)  # 不加逗号类型判断会是int

# 切片的使用相同、count用来计数某个元素出现的次数,使用方法也相同
# list(tuple) ---> 元组转列表
# tuple(list) ---> 列表转元组
# 可以通过元组转列表之后进行修改,再把列表转元组


# 字符串 a.replace(' ', ' ') 替换操作
# a.split(','):用逗号分割,结果是列表类型

# 字典
# 可以容纳多个数据、可以容纳不同类型的数据
# 每一份数据都是KeyValue键值对
# 可以通过Key获取到Value,Key不可重复(会覆盖前面的Key)
# 不支持下标索引
# 可以修改(增加或删除更新元素)
# 支持for循环,不支持while循环

person ={'name':'小明','age':'18'}
print(person['name']) # 查询时要str形式
# 不能使用person.name的方式来访问字典中的数据
# 小明 get后面还可以传第二个参数,意味如果找不到该key的value值的话
# 使用.的方式,获取字典中不存在的key的时候 不会报错会返回一个none
print(person.get('name')) #可以使用如下方式来访问

# 字典修改
person['name'] = '张三'
person['sex'] = '男'

# 字典的删除
# pop删除字典中指定的某一个元素
# popitem删除最后面的一个键值
# del
# 1.删除字典中指定的某一个元素
# 2.删除整个字典
# clear 1.清空字典 但是保留字典对象

person = {'name':'小明','age':18}
person.pop('name')
del person['age']
del person #整个删除 # 此时如果在下面打印person会出现报错 person is not defined
person.clear() #此时如果在下面打印person会打印出 {}

# 字典的遍历
person = {'name':'小明','age':18,'sex':'男'}
# 遍历字典的key
# 字典.keys() 方法 获取字典中所有的key值
for key in person.keys():
    print(key)
# 遍历字典的value
# 字典.values() 方法 获取字典中所有的values值
for value in person.values():
    print(value)
# 遍历字典的key和value 、、、items
for key,value in person.items():
    print(key,value)
# 遍历字典的项/元素
# ('name', '小明')
# ('age', 18)
# ('sex', '男')
for item in person.items():
    print(item)

# set  -- {}
# 集合中不能有重复的值
# 集合是可修改的

list = [1,3,6,8,9,9,1,2,3,9]
set_list = set(list)
print(set_list)

set_list.add(10)
print(set_list)

set_list.remove(10)
print(set_list)

# 合并 update
set1.update(set2) #把2并进1

# 移除
set.remove() #如果传入的值不存在的话会报错
set.discard() #传入的值不存在的话不会报错
del set #整个删除
set.clear() # 清空
set.pop() #随机删除一个元素

# 集合
union # 并集 简写 & set2 & set3
difference # 差集 简写 - set2 - set3
intersection # 交集 简写 | set2 | set3


# 例 产生5组(不允许重复),字母和数字组成4位验证码
import random
code_set = set()
s = 'ewqrrtuyyutifgsgsdfg012132254678731'
while True:
    code = ''
    for i in range(4):
        # r =random.choice(s) 这是使用choice的,也可以使用randint
        # code +=r
        index = random.randint(0,len(s)-1)
        code +=s[index]

    code_set.add(code)
    if len(code_set) ==5:
        break
print(code_set)


# 公共方法
# ```
# max()找出最大值
# list = [1,2,5,6,9]
# print(max(list)) # 9
# min()找出最小值
# sum()求和
# abs()绝对值
# sorted()升序排序排序,但是返回的是列表 添加参数 reverse=True 变为降序排序
# chr() 输入ASSC码值返回对应的字母
# ord() 输入字母返回ASSC码值
# isinstance(a,int) 判断类型 第一个参数是变量,第二个参数是类型,如果是则返回True,反之是False

例 产生5组(不允许重复),字母和数字组成4位验证码

import random
code_set = set()
s = 'ewqrrtuyyutifgsgsdfg012132254678731'
while True:
    code = ''
    for i in range(4):
        # r =random.choice(s) 这是使用choice的,也可以使用randint
        # code +=r
        index = random.randint(0,len(s)-1)
        code +=s[index]

    code_set.add(code)
    if len(code_set) ==5:
        break
print(code_set)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值