pyhton学习笔记之列表、元组、字符串、字典、集合

1、列表、元组操作                                                                  

  • 列表:有序的数据类型之一,可通过索引取得列表的值,可对列表进行,添加、删除、更改、查找

列表定义:

list_names = ["Wang","Zhang","Li","Hao","Jiang","Xu","Tan"]
# 可通过下标访问数据
print(list_names[1])
print(list_names[3])
定义

 切片:取多个元素

1 list_names = ["Wang","Zhang","Li","Hao","Jiang","Xu","Tan"]
2 print(list_names[0:3])                         # 取列表中多个数据,注:结尾下标无法取值,从左往右取
3 print(list_names[-1])                          # 取倒数N个数据
4 print(list_names[-4:-1])                       # 取倒数指定多个数据,注:结尾下标无法取值,从左往右取
切片

 添加:

1 list_names = ["Wang","Zhang","Li","Hao","Jiang","Xu","Tan"]
2 # 追加
3 list_names.append("Fang")                      # 追加插入数据至末尾
4 #插入
5 list_names.insert(2,"Huang")                   # 插入数据
添加

删除:

1 list_names = ["Wang","Zhang","Li","Hao","Jiang","Xu","Tan"]
2 del list_names[2]                              # 删除指定位置数据
3 list_names.remove("Li")                        # 删除指定位置数据
4 list_names.pop(0)                              # 删除指定位置数据,没有参数则默认删除最后一个数据
删除

更改:

1 list_names = ["Wang","Zhang","Li","Hao","Jiang","Xu","Tan"]
2 list_names[2] = "Xu"                           #更改指定数据
更改

查找:

1 list_names = ["Wang","Zhang","Li","Hao","Jiang","Xu","Tan"]
2 print(list_names.index("Hao"))                 # 查看指定数据在列表中的位置
3 print(list_names[list.index("Hao")])           # 通过查看指定数据在列表中的位置确定数据
查找

 复制:

 1 import  copy
 2 # 浅copy,只能COPY第一层数据
 3 list1 = [1, 2, [7, 8, 9], 3, 4]
 4 list2 = list1.copy()                        # 修改list1中list1[2][2]数据,list2[2][2]数据并未修改
 5 list1[2][2] = 6
 6 print(list1[2])
 7 print(list2[2])                             # 显示list2中list2[2][2]数据已修改,即只复制了list1第一层
 8 # 深度copy,只能COPY多层数据
 9 list1 = [1, 2, [7, 8, 9], 3, 4]
10 list2 = copy.deepcopy(list1)                # 修改list1中list1[2][2]数据,list2[2][2]数据并未修改
11 list1[2][2] = 6
12 print(list1[2])
13 print(list2[2])                             # 显示list2中list2[2][2]数据并未修改,即只复制了list1多层
复制

其它方法:

1 list_names = ["Wang", "Zhang", "Li", "Tan", "Hao", "Jiang", "Xu", "Tan"]
2 list_names.reverse()                      # 逆序列表元素
3 print(list_names.count("Tan"))         # 查看元素在列表中的次数
4 list_names.clear()                          # 清空列表元素
5 list_names.sort()                           # 列表排序:从前往后:特殊字符>>数字>>大写字母>>小写字母(ASCII排序)
6 list1 = [1, 2, [7, 8, 9], 3, 4]
7 list_names.extend(list1)                  # 扩展添加另一个列表
其它方式

 

  • 元组:有序的数据类型之一,可通过索引取得元组的值,仅对对元组进行,索引和计数 

定义:

1 tuple_1 = ("Wang", "Li", "Tan", "Li", "Li")
2 print(type(tuple_1))
定义

索引\计数:

tuple_1 = ("Wang", "Li", "Tan", "Li", "Li")
print(tuple_1.index("Li"))                  # 返回第一个值的索引
print(tuple_1.count("Li"))                  # 返回"Li"的个数
索引、计数

 

 

 

2、字符串操作                                                                           

  • 字符串:不可修改,形如有序列表

定义:

1 name = "My name is jon ,Hello!"
2 print(type(name))
定义

操作方法:

 1 name = "My name is jon ,Hello"
 2 name1 = " first name "
 3 print(name.capitalize())            # 首字母大写
 4 print(name.count('n'))              # 统计'n'的个数
 5 print(name.center(50, "-"))          # 打印50个字符,不够50用 '-'填充,内容居中
 6 print(name.endswith('n'))           # 判断是否已"n"结尾
 7 print(name.startswith('n'))         # 判断是否已" "开头
 8 print(name.format(_name = name1))   # 引用其它变量
 9 print(name.isdigit())               # 判断是否是数字
10 print(name1.isalnum())              # 判断是否全为数字和字母
11 print(name1.isalpha())          # 判断是否全为字母
12 print(name1.isdecimal())          # 判断是否全为十进制数
13 print(name1.isidentifier())          # 判断是否为合法的标识符
14 print(name1.islower())          # 判断字母是否全为小写
15 print(name1.isupper())           # 判断字母是否全为大写
16 print(name1.isnumeric())           # 判断是否是数字
17 print(name1.isspace())           # 判断是否为空格
18 print(name.istitle())           # 判断是否为标题(首字母大写)
19 print(name.replace('N', 'n'))           # 替换字符串中的字符
20 print(name.rjust(50, '*'))          # 打印50个字符不足50用*替代,需打印字符置于最右边
21 print(name.rindex('n'))          # 索引字符返回最后一个字符的下标
22 print(name.index('n'))            # 索引字符返回第一个字符的下标
23 print(name.rfind('n'))           # 查找字符返回最后一个字符的下标
24 print(name.find('n'))            # 查找字符返回第一个字符的下标
25 print(name.rsplit(" "))            # 按指定字符划分字符串,且该字符被","代替(默认空格)
26 print(name.rstrip())               # 除去字符串末尾空格符及回车符
27 print(name.lstrip())                # 除去字符串前端空格符及回车符
28 print(name.strip())                 # 除去字符串前端和后端空格符及回车符
29 print(name.swapcase())              # 将字符串大小写字母交换
30 print(name.title())                 # 将字符串改为title(各个首字母大写)
31 print(name.zfill(50))               # 打印50个字符不足50用0替代,需打印字符置于最右边
32 print(name.upper())                 # 转换为小写字母
33 print(name.lower())                 # 转换为大写字母
34 print(name.replace(' ', ''))
35 print(name.index('y'))
操作方法

 

 

 

3、字典操作                                                                             

  • 字典:键-值对的形式,可通过键查找键的值
  • 特性:无序,键唯一(去重)

定义:

1 favorite_book = {
2     "wang": "math",
3     "cheng": "english",
4     "zhang": "chinese",
5     "xu": "japanese"
6     }
7 print(type(favorite))
定义

操作方法:

 1 favorite_book = {
 2     "wang": "math",
 3     "cheng": "english",
 4     "zhang": "chinese",
 5     "xu": "japanese"
 6     }
 7 # 查找
 8 print("wang favorite book is %s" % favorite_book["wang"])  # 确定查找对象在字典中
 9 print(favorite_book.get("li"))  # 不确定查找对象是否在字典中,不在字典中返回None  推荐使用
10 print('wang' in favorite_book)  # 判断值是不是在字典中
11 
12 # 修改
13 favorite_book["wang"] = "li"
14 for name, books in favorite_book.items():
15     print("name :%s >> books : %s" % (name.upper(), books.upper()))
16 
17 # 删除
18 del favorite_book["zhang"]
19 favorite_book.pop("wang")
20 favorite_book.popitem()
21 for name, books in favorite_book.items():
22     print("name :%s >> books : %s" % (name.lower(), books.lower()))
23 
24 # 增加
25 favorite_book["qin"] = "语文"
26 favorite_book["qing"] = "数学"
27 print(favorite_book)
28 
29 # 结合for循环
30 for k, v in favorite_book.items():    # 效率低
31     print(k, v)
32 for k in favorite_book:                  # 效率高
33     print(k, favorite_book[k])
34 
35 # 只打印键.keys()
36 for name in favorite_book.keys():
37     print(name)
38 
39 # 只打印值.values()
40 for books in favorite_book.values():
41     print(books)
42 
43 # 更新
44 c = {'wang': "外语", "liu": "地理"}   # 将两个字典合并,相同键,替换值,不同键添加
45 favorite_book.update(c)
46 print(favorite_book)
47 
48 favorite_book.setdefault('hui', "语文")    # 在favorite_books 中取键,若取得,打印原value 若取不到则添加
49 print(favorite_book)
50 favorite_book.setdefault('wang', "语文")    # 在favorite_books 中取键,若取得,打印原value 若取不到则添加
51 print(favorite_book)
52 
53 # 通过一个列表生成默认dict,            ##有毒放弃
54 # dict.fromkeys = ([1,2,3])
55 # print(dict.fromkeys)
操作方法

 

4、集合操作                                                                            

  • 集合:类似字典,可进行更删改查,用于关系测试,交集,并集,差集等关系
  • 特性:无序,唯一(天生去重)

定义:

1 names = {'zhang','wang','li','xu','peng'}
2 set(names)
3 print(type(names))
4 names1 = set(['qin','wang','qiao','xu','huang'])
5 print(type(names1))
定义

操作方法:

 1 # 创建集合
 2 names = {'zhang','wang','li','xu','peng'}
 3 set(names)
 4 print(type(names))
 5 names1 = set(['qin','wang','qiao','xu','huang'])
 6 print(type(names1))
 7 
 8 # 求并集
 9 union = names.union(names1)
10 print(union)
11 union1 = names  | names1
12 print(union1)
13 
14 # 求交集
15 intersection = names.intersection(names1)
16 print(intersection)
17 intersection1 = names & names1
18 print(intersection1)
19 
20 # 求差集
21 difference = names.difference(names1)       # name中存有的names1中没有
22 print(difference)
23 
24 difference_1 = names - names1
25 print(difference_1)
26 
27 difference1 = names1.difference(names)     # names1中有的names中没有
28 print(difference1)
29 
30 difference1_1 = names - names1
31 print(difference1_1)
32 
33 # 对称差集(将names和names1合并后,除去交集剩下的所有)
34 symmetric = names.symmetric_difference(names1)
35 print(symmetric)
36 symmetric1 = names1.symmetric_difference(names)
37 print(symmetric1)
38 
39 # 添加单个元素
40 names.add('liu')
41 print(names)
42 
43 # 添加多个元素
44 names.update(['feng','jin'])
45 print(names)
46 
47 # 删除指定元素元素
48 names.remove('jin')
49 print(names)
50 
51 # 随机删除元素
52 names.pop()
53 print(names)
54 
55 # 无法对集合中元素的值更改
56 
57 # 检测元素是否存在集合中,存在返回True 不存在返回False
58 print('wang' in names)
59 print('ma' in names)
60 
61 # 检测b(names2)是不是a(names)的子集
62 names2 = {'peng', 'xu'}
63 print(names2.issubset(names))
64 
65 # 检测a(names)的是不是b(names2)父集
66 print(names.issuperset(names2))
操作方法

 

 

posted @ 2019-07-31 09:55  搬瓦匠  阅读(180)  评论(0编辑  收藏  举报