【Python3】列表字典集合元组
1 列表
1.1 定义与索引
在Python中,第一个列表元素的下标为 0通过将索引指定为 -1
可以让Python返回最后一个列表元素
inventory = ['sword', 'armor', 'shield',
'big sword', 'big shiled'];
print(inventory[-1]);
1.2 修改 添加 删除
1.2.1 修改元素
inventory = ['sword', 'armor', 'shield',
'big sword', 'big shield'];
inventory[-1] = 'small shield'
print(inventory)
'''
运行结果:
['sword', 'armor', 'shield', 'big sword', 'small shield']
'''
1.2.2 添加元素
- 在列表末尾添加元素
inventory1 = ['sword', 'armor', 'shield',
'big sword'];
inventory1.append('small shield');
print(inventory1)
#结果:['sword', 'armor', 'shield', 'big sword', 'small shield']
- 在列表中插入元素
inventory2 = ['armor', 'shield',
'big sword', 'small shield'];
inventory2.insert(0, 'sword');
print(inventory2)
#结果:['sword', 'armor', 'shield', 'big sword', 'small shield']
1.2.3 删除元素
- 使用 del 语句删除元素-----可以是任意位置
inventory = ['sword', 'armor', 'shield',
'big sword', 'big shield'];
del inventory[0];
print(inventory)
#结果:['armor', 'shield', 'big sword', 'small shield']
- 使用 pop( ) 删除(弹出)元素-----可以是任意位置
inventory = ['sword', 'armor', 'shield',
'big sword', 'big shield'];
popped_inventory = inventory.pop(4);
print(inventory) #结果1
print(popped_inventory) #结果2
#结果1:['sword', 'armor', 'shield', 'big sword']
#结果2:small shield
- 使用 remove( ) 根据值删除元素
inventory = ['sword', 'sword', 'armor', 'shield',
'big sword', 'big shield'];
inventory.remove('sword');
print(inventory);
#结果:['sword', 'armor', 'shield', 'big sword', 'small shield']
注意:它只会删除第一个指定的值
1.3 组织列表
1.3.1 使用 sort() 对列表进行 永久性 排列
mylist = ['sword', 'armor', 'big shield'];
mylist.sort();
print(mylist);
#结果1:['armor', 'big shield', 'sword']
mylist.sort(reverse = True);
print(mylist);
#结果2:['sword', 'big shield', 'armor']
1.3.2 使用 sorted() 对列表进行 临时 排列
mylist = ['sword', 'armor', 'big shield'];
print(mylist); #结果1:['sword', 'armor', 'big shield'];
print(sorted(mylist)); #结果2:['armor', 'big shield', 'sword']
print(mylist); #结果3:['sword', 'armor', 'big shield'];
1.1.3 使用 reverse() 倒着打印列表
mylist = ['sword', 'armor', 'big shield'];
print(mylist.reverse());
#结果:['big shield', 'armor', 'sword']
1.1.4 使用 len() 确定列表的长度
mylist = ['sword', 'armor', 'big shield'];
len(mylist);
#结果:3
1.4 操作列表
1.4.1 for循环遍历列表
magicians = ['alice', 'david', 'jack'];
for magician in magicians:
print(magician.title());
-------------------------------------------
Alice
David
Jack
1.4.2 避免缩进错误
- 忘记缩进或者忘记缩进额外的代码行
- 不必要的缩进(注意: 循环后的不必要的缩进)
- 遗漏了冒号
1.4.3 创建数字列表
1.4.3.1 使用函数 range()
print('...START...');
for value in range(1, 6): #Only 1 to 5
print('NO: ' + str(value));
print('...OVER...');
-------------------------------------------
...START...
NO: 1
NO: 2
NO: 3
NO: 4
NO: 5
...OVER...
1.4.3.2 创建数字列表
numbers = list(range(10, 1, -1));
numbers.append(1);
delete = numbers.pop(0);
print("...Erase " + str(delete) + '...');
print(numbers);
-------------------------------------------
...Erase 10...
[9, 8, 7, 6, 5, 4, 3, 2, 1]
1.4.3.3 简单的统计计算
numbers = range(1, 5);
print('min: ');
print(min(numbers));
print('max: ');
print(max(numbers));
print('sum: ');
print(sum(numbers));
-------------------------------------------
min:
1
max:
4
sum:
10
1.4.3.4 列表推导式
squares = [value**2 for value in range(1, 11)]
print(squares);
-------------------------------------------
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
1.4.4 使用列表的一部分
1.4.4.1 切片
my_food = ['pizza', 'falafel', 'carrot cake'];
friend_food = my_food[0:1];
#1 如果没有指定起始索引,默认从开头开始提取
#2 要让切片终于末尾,类似 #1
print('My favorite foods are');
print(my_food);
print("\nMy friend's favorite foods are");
print(friend_food);
-------------------------------------------
My favorite foods are
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are
['pizza']
1.4.4.2 遍历切片
foods = ['pizza', 'falafel', 'carrot cake'];
print('My favorite foods are');
for food in foods[:3]:
print(food.title());
-------------------------------------------
My favorite foods are
Pizza
Falafel
Carrot Cake
1.4.4.3 复制列表
my_food = ['pizza', 'falafel', 'carrot cake'];
friend_food = my_food[:];
print('My favorite foods are');
print(my_food);
print("\nMy friend's favorite foods are");
print(friend_food);
-------------------------------------------
My favorite foods are
['pizza', 'falafel', 'carrot cake']
My friend's favorite foods are
['pizza', 'falafel', 'carrot cake']
2 元组
列表非常适合用于存储在程序运行期间可能变化的数据集
但有时需要一系列不可修改的元素, 元组可以满足这种需求
2.1 定义元组
使用圆括号标识
foods = ('pizza', 'falafel', 'carrot cake');
print('My favorite foods are');
for food in foods[:3]:
print(food.title());
-------------------------------------------
My favorite foods are
Pizza
Falafel
Carrot Cake
2.2 修改元组变量
虽然不能元组的元素,但可以给存储元组的变量赋值
foods = ('pizza', 'falafel', 'carrot cake');
print(foods);
foods = ('sword', 'shield', 'armor');
print(foods);
-------------------------------------------
('pizza', 'falafel', 'carrot cake')
('sword', 'shield', 'armor')
3 字典
3.1 定义与访问
在Python中,字典 是一系列 键-值对。每个 键 都与一个 值 相关联,可以使用键来访问与之相关的值
与键相关联的 值 可以是 数字,字符串,列表乃至字典
事实上,可将任何Python对象用作字典中的值,但键不行
fruit = {
'name': 'apple',
'color': 'red',
'quantity': 5
};
print(fruit['name']);
print(fruit['color']);
print(fruit['quantity']);
-------------------------------------------
apple
red
5
3.1.1 注意点
- 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个会被记住
- 键必须不可变,所以可以用数字,字符串或元组充当,而用列表不行
3.2 修改 添加 删除
3.2.1 修改字典中的值
apple = {'color': 'green'};
print('The apple is ' + apple['color'] + '.');
apple['color'] = 'red';
print('The apple is now ' + apple['color'] + '.');
-------------------------------------------
The apple is green.
The apple is now red.
3.2.2 添加 键-值对
fruit = {
'name': 'apple',
'color': 'red',
'quantity': 5
};
print(fruit);
fruit['x_position'] = 0;
fruit['y_position'] = 12;
print(fruit);
-------------------------------------------
{'name': 'apple', 'color': 'red', 'quantity': 5}
{'name': 'apple', 'color': 'red', 'quantity': 5, 'x_position': 0, 'y_position': 12}
3.2.3 删除 键-值对
fruit = {
'name': 'apple',
'color': 'red',
'quantity': 5
};
print(fruit);
del fruit['quantity'];
print(fruit);
-------------------------------------------
{'name': 'apple', 'color': 'red', 'quantity': 5}
{'name': 'apple', 'color': 'red'}
3.3 遍历字典
3.3.1 遍历所有的键-值对
items()
people = {
'name': 'vivian',
'gender': 'man',
'hobby': 'python',
};
for key,value in people.items():
print(key.title() + ' : ' + value.title());
-------------------------------------------
Name : Vivian
Gender : Man
Hobby : Python
3.3.2 遍历所有的键
keys()
people = {
'name': 'vivian',
'gender': 'man',
'hobby': 'python',
};
for key in people.keyes():
print(key.title());
-------------------------------------------
Name
Gender
Hobby
3.3.3 遍历所有的值
people = {
'name': 'vivian',
'gender': 'man',
'hobby': 'python',
};
for value in people.values():
print(value.title());
-------------------------------------------
Vivian
Man
Python
3.4 字典内置函数&方法
3.4.1 Python字典包含的内置函数
people = {
'name': 'vivian',
'gender': 'man',
'hobby': 'python',
};
| 函数及描述 | 实例 |
|---|---|
| len(dict) 计算字典元素个数 |
>>>len(people) 3 |
| str(dict) 输出字典,可以打印的字符串表示 |
>>>str(people) {'name': 'vivian', 'gender': 'man', 'interest': 'python'} |
| type(variable) 返回变量类型 |
>>>type(people) <class 'dict'> |
3.4.2 Python字典包含的内置方法
people = {
'name': 'vivian',
'gender': 'man',
'hobby': 'python',
};
| 函数与描述 | 实例 |
|---|---|
| dict.clear( ) | >>>people.clear(); >>>len(people); 0 |
| dict.copy( ) | >>>person = people.copy(); >>>person {'name': 'vivian', 'gender': 'man', 'hobby': 'python'} |
| dict.fromkeys(seq[, value]) 中括号内是选填 |
>>> seq = ('name','sex','hobby') >>> person = dict.fromkeys(seq) >>> person {'name': None, 'sex': None, 'hobby': None} >>> person = dict.fromkeys(seq,666) >>> person {'name': 666, 'sex': 666, 'hobby': 666} |
| dict.get(key, default = None) | >>> people = { ... 'name': 'vivian', ... 'gender': 'man', ... 'hobby': 'python', ... }; >>> people.get('name') 'vivian' >>> people.get('name').title() 'Vivian' >>> people.get('nam') #啥都没有 |
| dict.setdefault(key, defalut = None) 如果键不存在,将会添加键并将值设为默认值 |
>>> people.setdefault('nam',None) >>> people.setdefault('name',None) 'vivian' >>> people {'name': 'vivian', 'gender': 'man', 'hobby': 'python', 'nam': None} |
| dict.update(dict2) 把 dict2 添加到指定字典 dict 中 |
>>> people.update({'age': 18}) >>> people {'name': 'vivian', 'gender': 'man', 'hobby': 'python', 'nam': None, 'age': 18} |
| dict.pop(key[, defalut]) 中括号内是选填 key:要删除的键值 返回被删除的值 |
>>> people.pop('name') 'vivian' |
| dict.popitem() 随机返回并删除字典中的最后一对键和值 如果字典已经为空,还使用它,则会报错 |
>>> people.popitem(); ('hobby', 'python') >>> people.popitem(); ('gender', 'man') |
4 集合
4.1 定义
集合(set)是一个无序的不重复元素序列
可以使用大括号 { } 或者 set() 函数创建集合
注意:创建一个空集合必须用 set() 而不是 { } ,因为 { } 是用来创建一个空字典
创建格式:
parame = {value01, value02......}
或者
set(value)
4.2 集合特性
>>> fruits = {'apple','orange','apple','pear','orange','banana'}
>>> print(fruits)
#去重功能
{'apple', 'banana', 'pear', 'orange'}
#判断元素是否在集合内
>>> 'apple' in fruits
True
>>> 'onion' in fruits
False
#两个集合之间的运算
>>> a = set('sgjahsgs')
>>> b = set('skajkshgs')
>>> a
{'s', 'g', 'j', 'a', 'h'}
>>> b
{'s', 'j', 'g', 'a', 'k', 'h'}
>>> b - a # b 比 a 多的部分
{'k'}
>>> a | b # 并集
{'s', 'g', 'j', 'a', 'k', 'h'}
>>> a & b # 交集
{'s', 'g', 'j', 'a', 'h'}
>>> a ^ b # 以它们并集为全集,两者交集的补集
{'k'}
4.2.1 集合推导式
>>> a = {value for value in 'absjhagjgs' if value not in 'abc'}
>>> a
{'j', 'h', 's', 'g'}
4.3 添加 删除
4.3.1 添加元素
>>> fruit = {'apple','banana','strawberry','onion'}
#1 使用add(element) 如果在集合中,element元素已经存在了,则不会进行任何操作
>>> fruit.add('grape')
#2 使用update(x)
#其参数可以是列表,元组,字典等
>>> fruit.update('h')
>>> fruit
{'onion', 'apple', 'grape', 'banana', 'h', 'strawberry'}
>>> fruit = {'apple','banana','strawberry','onion'}
>>> fruit.update([1,3])
>>> fruit
{1, 'onion', 3, 'apple', 'banana', 'strawberry'}
4.3.2 删除元素
>>> fruit
{1, 'onion', 3, 'apple', 'banana', 'strawberry'}
>>> fruit.remove(1) #如果集合中不存在要移除的元素,则会发生错误
>>> fruit
{'onion', 3, 'apple', 'banana', 'strawberry'}
>>> fruit.discard(3) #如果集合中不存在要移除的元素,不会发生错误
>>> fruit
{'onion', 'apple', 'banana', 'strawberry'}
>>> fruit.pop() #随机删除,并返回被删除的元素
'onion'
>>> fruit.pop()
'apple'
4.4 集合内置方法
>>> x = set('abcdf')
>>> y = set('abcrg')
>>> z = set('abczh')
>>> m = set('dhfjk')
| 函数与描述 | 实例 |
|---|---|
| set.difference(set) 返回集合的差集 |
>>> z = x.difference(y) >>> z {'d', 'f'} |
| set.difference_update(set) 移除两个集合都包含的元素 无返回值 |
>>> x.difference_update(y) >>> x {'f', 'd'} |
| set.intersection(set1, set2 ... etc) 返回集合的交集 |
>>> m = x.intersection(y, z) >>> m {'c', 'b', 'a'} |
| set.intersection_update(set1, set2 ... etc) 无返回值 |
>>> x.intersection_update(y, z) >>> x {'c', 'b', 'a'} |
| isdisjoint() 判读两个集合是否包含相同元素 如果 没有 返回True |
>>> x.isdisjoint(y) False |
| set.issubset(set) 判断是否是被包含 |
>>> x.issubset(y) True |
| issuperset 判断是否包含 |
>>> y.issuperset(x) True |
| symmetric_difference() 返回交集在并集中的补集 |
>>> m = x.symmetric_difference(y) >>> m {'g', 'r'} |
| symmetric_difference_update() 无返回值 |
>>>x.symmetric_difference_update(y) >>> x {'g', 'r'} |
| union() 返回并集 |
>>> n = x.union(m) >>> n {'f', 'b', 'd', 'h', 'k', 'a', 'c', 'j'} |
【Python3】列表字典集合元组的更多相关文章
- python3 列表/字典/集合推导式
'''列表推导式[结果 fox循环 if语句]'''lst = ["Python周末%s期" % i for i in range(1, 27) if i%2 == 0]print ...
- Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据
Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...
- python :列表 字典 集合 类 ----局部变量可以改全局变量
#列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...
- python基础一 -------如何在列表字典集合中根据条件筛选数据
如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...
- Python基础2 列表 字典 集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧
实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...
- Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作
1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...
- python中元组/列表/字典/集合
转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566
- python数据类型详解及列表字典集合推导式详解
一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...
随机推荐
- 干货 | Nginx 配置文件详解
一个执着于技术的公众号 前言 在前面章节中,我们介绍了nginx是什么.如何编译安装nginx及如何彻底卸载nginx软件. 干货|给小白的 Nginx 10分钟入门指南 Nginx编译安装及常用命令 ...
- .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...
- SQL注入到getshell
SQL注入到getshell 通过本地 pikachu来复现 前提: 1.存在SQL注入漏洞 2.web目录具有写入权限 3.找到网站的绝对路径 4.secure_file_priv没有具体值(se ...
- selenium模块 phantomJs 谷歌无可视界面
参考微博: 什么是selenium 一款基于浏览器自动化的模块 什么是浏览器自动化 通过脚本程序或者python代码,这组程序或者代码表示一些行为动作,selenium可以让这些行为动作映射到浏览器中 ...
- 面试突击49:说一下 JUC 中的 Exchange 交换器?
Exchange(交换器)顾名思义,它是用来实现两个线程间的数据交换的,它诞生于 JDK 1.5,它有两个核心方法: exchange(V x):等待另一个线程到达此交换点,然后将对象传输给另一个线程 ...
- while和for循环的补充与数据类型的内置方法(int, float, str)
目录 while与for循环的补充 while + else 死循环 while的嵌套 for补充 range函数 break与continue与else for循环的嵌套 数据类型的内置方法 int ...
- 解放双手!推荐一款 GitHub 星标 8.2k+的命令行软件管理器,非常酷炫!
小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他.第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境. 二话不说,他就开始马不停蹄地行动了.真没想到,他竟然是通过命令 ...
- 协议层安全相关《http请求走私与CTF利用》
0x00 前言 最近刷题的时候多次遇到HTTP请求走私相关的题目,但之前都没怎么接触到相关的知识点,只是在GKCTF2021--hackme中使用到了 CVE-2019-20372(Nginx< ...
- 服务器安装mysql遇到的坑
服务器安装mysql遇到的坑 一.CentOS7安装MySQL 1.下载:MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mys ...
- Cpp的赋值和变量说明
一命名方式: 1.关键字不能作为变量名 int int;是错误的电脑会提示为非法取名 上面的示例是错误示范,而错误提示告诉了为什么错了记住这错误提示了: 2.的二个知识点: 变量名是分大小写的: in ...