第四天,感觉时间还是过得很快,今天内容确实有点多,关于list的方法实在是太多了,元组tuple感觉有点鸡肋,可能得到后面才知道他的作用吧,然后是字典,看了很多关于字典的介绍,但是这货到底是干啥用的一直没看懂。不多说开始今天的整理:
一、今天发现一个题目有了新的想法,姑且记录一下。题目:#用户输入用户名、密码、邮箱,限定长多不超过16位,并制作表格
s = "" a = 0 while a < 3: v1 = input("用户名>>>") v1 = v1[0:16] v2 = input("密 码>>>") v2 = v2[0:16] v3 = input("邮 箱>>>") v3 = v3[0:16] once = "{0} {1} {2} " b = once.format(v1,v2,v3) s = s + b a += 1 print(s.expandtabs(20))
下面开始今日知识的正点部分:
一、列表list
什么是列表呢?就是 [ ] 这对中括号包围起来的内容,用“,”逗号分开即可,里面可以放你任何想放进去的东西,字符串、数字、bool、列表、元祖、字典,任何你想放的都可以的。
列表是有序排列的,按照从零开始的索引就可以读取里面的数值了。
和字符串str一样都是可以用切片的方法进行切片。
for、while循环都可以对他们进行遍历,同时每个元素都可以修改哦。
索引取值 print(li[3])
切片,切片结果也是列表 print(li[3:-1])
for循环 while循环
for item in li:
print(item)
1.索引进行修改:
li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] li[1] = 120 print(li) li[1] = [11,22,33,44] print(li)
2.删除 del li[1]
3.切片 li[3:-1] del li[3:-1]
4.关于in的操作
# li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] # v1 = "石振文" in li # print(v1) #v1 = False # v2 = "age" in li # print(v2) #v2 = True
5.查找深度索引
# li = [1, 12, 9, "age", ["石振文", ["19", 10], "庞麦郎"], "alex", True] # li[4][1][0] #石振文所在位置
6.str字符串和列表之间的转换
字符串转为列表时,每个字符会成为单独的列表元素
test = "abc" li_test = list(test) 结果可得到li_test = ["a","b","c"]
反过来列表转换为字符串,直接强行转换的结果
test = ["a","b","c"] st_test = str(test) 结果可得到str_test =" ["a","b","c"]"
所以要想达到["a","b","c"]成为abc的效果,就可以使用join方法或者很麻烦
# 列表转换成字符串, # 需要自己写for循环一个一个处理: 既有数字又有字符串 # li = [11,22,33,"123","alex"] # # r = str(li) # '[11,22,33,"123","alex"]' # # print(r) # s = "" # for i in li: # s = s + str(i) # print(s) # 直接使用字符串join方法:列表中的元素只有字符串 # li = ["123","alex"] # v = "".join(li) # print(v)
二、元组,元素不可被修改,不能被增加或者删除
# tuple
# tu = (11,22,33,44)
# tu.count(22),获取指定元素在元组中出现的次数
# tu.index(22)
1. 书写格式
# tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
# 一般写元组的时候,推荐在最后加入 ,
# 元素不可被修改,不能被增加或者删除
2. 索引
# v = tu[0]
# print(v)
3. 切片
# v = tu[0:2]
# print(v)
4. 可以被for循环,可迭代对象
# for item in tu:
# print(item)
5. 转换
# s = "asdfasdf0"
# li = ["asdf","asdfasdf"]
# tu = ("asdf","asdf")
#
# v = tuple(s)
# print(v)
# v = tuple(li)
# print(v)
# v = list(tu)
# print(v)
# v = "_".join(tu)
# print(v)
# li = ["asdf","asdfasdf"]
# li.extend((11,22,33,))
# print(li)
# 6.元组的一级元素不可修改/删除/增加
# tu = (111,"alex",(11,22),[(33,44)],True,33,44,)
# # 元组,有序。
# # v = tu[3][0][0]
# # print(v)
# # v=tu[3]
# # print(v)
# tu[3][0] = 567
# print(tu)
三、字典
# dict
# dict
# dic = {
# "k1": 'v1',
# "k2": 'v2'
# }
# 1 根据序列,创建字典,并指定统一的值
# v = dict.fromkeys(["k1",123,"999"],123)
# print(v)
# 2 根据Key获取值,key不存在时,可以指定默认值(None)
# v = dic['k11111']
# print(v)
# v = dic.get('k1',111111)
# print(v)
# 3 删除并获取值
# dic = {
# "k1": 'v1',
# "k2": 'v2'
# }
# v = dic.pop('k1',90)
# print(dic,v)
# k,v = dic.popitem()
# print(dic,k,v)
# 4 设置值,
# 已存在,不设置,获取当前key对应的值
# 不存在,设置,获取当前key对应的值
# dic = {
# "k1": 'v1',
# "k2": 'v2'
# }
# v = dic.setdefault('k1111','123')
# print(dic,v)
# 5 更新
# dic = {
# "k1": 'v1',
# "k2": 'v2'
# }
# dic.update({'k1': '111111','k3': 123})
# print(dic)
# dic.update(k1=123,k3=345,k5="asdf")
# print(dic)
# 6 keys() 7 values() 8 items() get update
##########
1、基本机构
# info = {
# "k1": "v1", # 键值对
# "k2": "v2"
# }
2 字典的value可以是任何值
# info = {
# "k1": 18,
# "k2": True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# print(info)
3 布尔值(1,0)、列表、字典不能作为字典的key(实际是因为bool对应的01会与其他k值重复造成的)
# info ={
# 1: 'asdf',
# "k1": 'asdf',
# True: "123",
# # [11,22]: 123
# (11,22): 123,
# # {'k1':'v1'}: 123
#
# }
# print(info)
4 字典无序
# info = {
# "k1": 18,
# "k2": True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# print(info)
5、索引方式找到指定元素
# info = {
# "k1": 18,
# 2: True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# # v = info['k1']
# # print(v)
# # v = info[2]
# # print(v)
# v = info['k3'][5]['kk3'][0]
# print(v)
6 字典支持 del 删除
# info = {
# "k1": 18,
# 2: True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# del info['k1']
#
# del info['k3'][5]['kk1']
# print(info)
7 for循环
# dict
# info = {
# "k1": 18,
# 2: True,
# "k3": [
# 11,
# [],
# (),
# 22,
# 33,
# {
# 'kk1': 'vv1',
# 'kk2': 'vv2',
# 'kk3': (11,22),
# }
# ],
# "k4": (11,22,33,44)
# }
# for item in info:
# print(item)
#
# for item in info.keys():
# print(item)
# for item in info.values():
# print(item)
# for item in info.keys():
# print(item,info[item])
# for k,v in info.items():
# print(k,v)
# True 1 False 0
# info ={
# "k1": 'asdf',
# True: "123",
# # [11,22]: 123
# (11,22): 123,
# # {'k1':' v1'}: 123
#
# }
# print(info)
今天的内容真的真的很多,我还有一些方法没来的及整理,感觉明天中午的任务非常艰巨啊
下面是每个部分的方法
list的:
extend(参数要求:可迭代) 将可迭代参数逐个加入原有列表中 li = ["a","b","c"] li.extend(["a","b"])结果是['a', 'b', 'c', 'a', 'b']
append(无参数要求) li = ["a","b","c"] li.append(["a","b"])结果是['a', 'b', 'c', ['a', 'b']]
clear清空列表 count()计算制定元素个数
index(value,start = none,end = none)从左向右查找制定参数索引位置
insert(插入索引位置num,制定内容)向制定索引位置增加参数
pop(索引) 删除一个值,并获得该值,如不设置索引则直接删除最后一个
remove(指定参数) 从左向右删除第一个指定参数,可限制范围
sort(self, key = none, revorse = false/true)false从小到大重新排序列,true则从大到小
元组的基本类似
字典
字典记住三个 keys、values、items,分别表示获得k值,获得v值,和获得一堆键值对
dict.fromkeys的作用,生成字典
v = dict.fromkeys(['a', 'b', 'c'],19) print(v) #结果{'c': 19, 'a': 19, 'b': 19}
get(索引,设置的默认值)根据索引查找value值,如果没有找到则输出默认值或none
pop(索引,默认值)根据索引查找,并删除索引所对应的键值对,不存在则输出默认值或none
popitem随机删除一对键值对
setdefault( k : v )或者(k = v) 向字典中设置键值对,如果对应索引已存在,则获取当前索引所对应的v值,不存在对应索引则增加该键值对
update( k : v )或者(k = v) 向字典中设置键值对,如果对应索引已存在,则覆盖当前索引所对应的v值,即将原字典中的v值更新,不存在对应索引则增加该键值对
哎呀呀,总算说完了,今天内容很多,还是得多练习啊,是不是各位大神看了觉得我脑残,都是从脑残走过来的,我脑残就脑残吧,智商只是buff,我攻速很快哦,要睡觉了,明天见。