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】列表字典集合元组的更多相关文章

  1. python3 列表/字典/集合推导式

    '''列表推导式[结果 fox循环 if语句]'''lst = ["Python周末%s期" % i for i in range(1, 27) if i%2 == 0]print ...

  2. Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据

    Python 高效编程技巧实战(2-1)如何在列表,字典, 集合中根据条件筛选数据 学习目标 1.学会使用 filter 借助 Lambda 表达式过滤列表.集合.元组中的元素: 2.学会使用列表解析 ...

  3. python :列表 字典 集合 类 ----局部变量可以改全局变量

    #列表 字典 集合 类 ----局部变量可以改全局变量,除了整数和字符串 names=["alex","jack","luck"] def ...

  4. python基础一 -------如何在列表字典集合中根据条件筛选数据

    如何在列表字典集合中根据条件筛选数据 一:列表 先随机生成一个列表,过滤掉负数 1,普通for循环迭代判断 2,filter()函数判断,filter(函数,list|tuple|string) fi ...

  5. Python基础2 列表 字典 集合

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  6. 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧

    实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...

  7. Learn day3 深浅拷贝/格式化/字符串/列表/字典/集合/文件操作

    1. pass break continue # ### pass break continue # (1) pass 过 """如果代码块当中,什么也不写,用pass来 ...

  8. python中元组/列表/字典/集合

    转自:https://blog.csdn.net/lobo_seeworld/article/details/79404566

  9. python数据类型详解及列表字典集合推导式详解

    一.运算符 Python语言支持以下类型的运算符: 算术运算符 如: #!/usr/bin/env python # -*- coding:utf-8 -*- a = 5 b = 6 print(a ...

随机推荐

  1. python 本地配置文件库 Dynaconf 简介

    [前言] 在项目中经常会遇到以下几种需要用到配置文件的场景: 相同的配置参数用在不同的代码中,如果需要调整,则需要手动将各个使用到的地方都相应调整. 密码等信息不想硬编码在项目文件中. 配置文件的格式 ...

  2. 从OC角度思考OKR的底层逻辑

    原创不易,求分享.求一键三连 扩展阅读:什么是OKR OC:Organization Cultrue即组织文化,标题用OC纯粹为了装逼... ​自从接受公司文化建设工作后,思维发生了很大的变化,文化, ...

  3. 637. Average of Levels in Binary Tree - LeetCode

    Question 637. Average of Levels in Binary Tree Solution 思路:定义一个map,层数作为key,value保存每层的元素个数和所有元素的和,遍历这 ...

  4. asp.net6 blazor 文件上传

    微软在asp.net6中给blazor新增了一个IJSStreamReference的接口. 我们今天的所有内容,都要依赖这个接口,因为它可以把流直接传到c#中,这样我们就可以做很多的骚操作了. 今天 ...

  5. jQuery其他操作与bootstrap框架

    目录 标签操作 样式操作 位置操作 文本值操作 属性操作 文档处理 事件操作 常见事件 克隆案例 悬浮事件hover() 监听input输入值事件 阻止后续事件 事件委托 动画效果 bootstrap ...

  6. 编程语言与python与pycharm的下载

    目录 编程语言的发展史 编程语言的分类 python解释器 python解释器的下载与安装 环境变量 执行python程序方式 pycharm编辑器 编程语言的发展史 机器语言是最开始的编程语言,之后 ...

  7. HttpUploadFile

    public static void HttpUploadFile(string url, string file, string paramName, string contentType, Nam ...

  8. 3000帧动画图解MySQL为什么需要binlog、redo log和undo log

    全文建立在MySQL的存储引擎为InnoDB的基础上 先看一条SQL如何入库的: 这是一条很简单的更新SQL,从MySQL服务端接收到SQL到落盘,先后经过了MySQL Server层和InnoDB存 ...

  9. ROS基本程序实现

    0.前言 现在介绍ROS基本程序实现的教程有很多,步骤无非就是建工作空间,编译,创建功能包,创建文件和修改CMakeList,之后再编译.运行程序这几步.但是这些教程中很多在文件夹切换的很混乱,导致会 ...

  10. ESP8266 系统环境搭建

    1. 前言 因为ESP8266/ESP32这个开发环境没少折腾,是真没见过这么难搞又不清晰的环境. 简单开发可以使用Arduino IDE ,这个平台还是挺好的.开发使用Arduino的函数库,很高效 ...