python3-基础3
列表 list[ ] 作用 -- 存储多个值,多个元素
索引 list[num]
切片 list[:3]
追加 list.append('lalaal')
删除 list.pop() 删除最后一位 list.pop(num) 指定下标
list.remove('lalala') 删除指定值
长度 len(list) 统计列表里面元素个数
包含 in x in list 判断x是否在列表中
##其他操作
清空列表 list.clear()
复制列表 list.copy()
统计元素重复次数 list.count('lala')
添加多个值 list.extend(['la1','la2','la3'])
查下标 list.index('la')
列表反转 list.reverse()
列表排序 list.sort()
队列: 先进先出
入队 .append fifo=[]
fifo.append('一')
fifo.append('二')
fifo.append('三')
出队.pop(0)
fifo1 = fifo.pop(0)
fifo2 = fifo.pop(0)
fifo3 = fifo.pop(0)
入队.insert(指定位置插入):
fifo.insert(0,'一')
fifo.insert(0,'二')
fifo.insert(0,'三')
出队 .pop()
fifo.pop()
堆栈:先进后出
列表元素赋值
list=['la', 18, [1988, 3, 31]]
name, age, birth = list
print(name)
print(age)
print(birth)
===============
元组 tuple() -- 就是一个不可变的列表,主要是用来读操作,是可以当做字典的key的
####小练习:买商品加入到购物车,商品信息为字典,购物车信息为列表,选中的商品信息为元组(商品名称、单价、数量)。
循环字典:
msg_dic={
'apple':10,
'benz':100000,
'mac':3000,
'lenovo':30000,
'pen':10,
}
for i in msg_dic:
print(i,msg_dic[i]
1 ##商品字典 mag_dic{}
2 msg_dic={
3 'apple':10,
4 'tesla':100000,
5 'mac':3000,
6 'lenovo':30000,
7 'chicken':10,
8 }
9 #购物车列表 goods_l[]
10 goods_l = []
11 # for i in msg_dic:
12 # print(i,msg_dic[i])
13
14 while True:
15 for key in msg_dic: #循环显示商品信息
16 print('\033[46mName:{name} Price:{price}\033[0m]'.format(price=msg_dic[key], name=key))
17 choice = input('your goods name >>: ').strip() #选择商品
18 # price=msg_dic[choice]
19 if choice == 0 or choice not in msg_dic: continue
20 count = input('your count >> : ').strip() #购买商品个数
21 if count.isdigit():
22 count = int(count)
23 goods_l.append((choice,msg_dic[choice], count)) #添加已选商品信息到购物车
24
25 print(goods_l)
字典 dict{} 存取多个值,key:value 成对出现,一一对应,取值速度快
key 是不可变类型(数字、字符串、元组), value是任意类型
创建 dict1 = {'name':'lalala', 'age' : 18 , 'sex' : 'male' ,}
dic = dict(a=1, b=2 , c=3)
添加 dict1['hight' ] = 180
删除 dict1.pop('key')
不会抛出异常 dict1.pop('keyx' , '没有这个值啊') 会返回‘’没有这个值‘
取值 dict1.get() 用法 同》.pop()
dict1.get('key' , 'not key') 若没有这个key,不会报错,返回 not key
dict1.popitem 返回key,value 以元组的形式
dict1.keys() 返回所有的key
dict1.values() 返回所有的值
dict.items() 取出所有的键值组合,以列表中的元组形式出现
for key,value in dict.items();
print(key,value)
dict1.update() 更新老的字典
手动增加字典内容
1 d1 = {}
2 print(d1) #{}
3 d1['name'] = 'lalal'
4 d1['age'] = 28
5 d1['sex'] = 'male'
6 d1['hobby'] = [] # 存在多个爱好
7 d1['hobby'].append('basketball')
8 d1['hobby'].append('swimming')
9 print(d1)
10 #{'name': 'lalal', 'age': 28, 'sex': 'male', 'hobby': ['basketball', 'swimming']}
11
12 #或者用setdefault
13 d2 = d1.setdefault('hahaha' , [])
14 print(d1)
15 #{'name': 'lalal', 'age': 28, 'sex': 'male', 'hobby': ['basketball', 'swimming'], 'hahaha': []}
16 print(d2)
17 #[]
18
19 d3 = d1.setdefault('hahaha' , []).append('play1')
20 d3 = d1.setdefault('hahaha' , []).append('play2')
21 print(d1)
22 #{'name': 'lalal', 'age': 28, 'sex': 'male', 'hobby': ['basketball', 'swimming'], 'hahaha': ['play1', 'play2']}
23 print(d2)
24 #['play1', 'play2']
25 print(d3)
26 #None
例子1
1 #下列集合中的数字[23,28,39,30,68,79,77,89,105,63],将所有不小于66的值,保存在第一个key键中,所有小于66的值保存在第二个key键中。
2 nums = [23,28,39,30,68,79,77,89,105,63]
3 dic = {'k1' : [] , 'k2' : []}
4 print(dic)
5 for i in nums:
6 print(i)
7 if i >= 66 :
8 dic['k1'].append(i)
9 else:
10 dic['k2'].append(i)
11 print(dic)
例子2
1 #统计s = "hello lalala you are a good man ha ha ha ha good" 中,各个单词的个数
2 s = "hello lalala you are a good man ha ha ha ha good"
3 words = s.split() #以空格分隔
4 print(words)
5 dic = {}
6 for word in words :
7 print(word)
8 if word not in dic:
9 dic[word] = 1 #如果word中的元素不在dic中,那么相当于 {‘hello’ : 1}
10 else:
11 dic[word] += 1 #如果word中的元素在dic中,那么相当于 {‘hello’ : 2}
12 print(dic)
集合set{} 作用主要是:去重,关系运算
集合内的元素必须都是不可变类型,即可hash类型
集合内的元素,不可重复,具有唯一性
集合是无序的
s1 = set('hello')
print(s1,type(s1)) # {'l', 'h', 'e', 'o'} <class 'set'>
删除元素
s1.pop() 随机删除一个值
s1.remove('aaa') 删除指定值,如果该值不存在,会报错
s1.discard(''aaaa) 删除指定值,如果该值不存在,那么不会报错
关系运算
s1 = {1,3,8,16,18,29}
s2 = {16, 39, 18, 8, 7, 5}
交集
s3 = s1 & s2
或 s3 = s1.intersection(s2)
并集
s4 = s1 | s2
或 s4 = s1.union(s2)
差集
s5 = s1 - s2
或 s5 = s1.difference(s2)
对称差集(排除并集后的值)
s6 = s1 ^ s2
或 s6 = s1.symmetric_difference(s2)
父集、子集
练习
1 # 有如下列表l,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序
2 #注:字典是可变类型,不能作为集合的元素
3 l=[
4 {'name':'egon','age':18,'sex':'male'},
5 {'name':'alex','age':73,'sex':'male'},
6 {'name':'egon','age':20,'sex':'female'},
7 {'name':'egon','age':18,'sex':'male'},
8 {'name':'egon','age':18,'sex':'male'},
9 ]
10 # set1 = set(l) 不能直接转为集合,会报错
11 # print(set1)
12 # 解决方法一 不用集合
13 l1=[]
14 for i in l:
15 if i not in l1:
16 l1.append(i)
17 print(l1)
18 # 解决方法二 借助集合去重
19 l1=[] #创建空列表
20 s=set() #创建空集合
21 for i in l: #循环列表中的元素
22 # print(i) #元素均为字典,需要吧字典转化为可以放在集合里面的类型,比如元组,使用 dict.items()
23 # tuple1 = i.items()
24 # print(tuple1)
25 # if i not in s: #判断列表元素是不是在集合中
26 # s.add(i)
27 # l1.append(i)
28
29 # print(l1)
30 val = (i['name'],i['age'],i['sex']) #应为字典的key都一样,所以将字典里的值组成一个元组
31 print(val)
32 if val not in s: #以元组为集合的元素,进行循环查找
33 s.add(val) #若不在元组中就添加
34 l1.append(i) #同时将对应的字典作为元素,添加到新建的列表中
35 print(l1)
36
37
python3-基础3的更多相关文章
- python3基础视频教程
随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...
- Python3基础-特别函数(map filter partial reduces sorted)实例学习
1. 装饰器 关于Python装饰器的讲解,网上一搜有很多资料,有些资料讲的很详细.因此,我不再详述,我会给出一些连接,帮助理解. 探究functools模块wraps装饰器的用途 案例1 impor ...
- 2. Python3 基础入门
Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...
- python002 Python3 基础语法
python002 Python3 基础语法 编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -* ...
- Python3基础(十二) 学习总结·附PDF
Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...
- Python3基础(八) 模块
在程序中定义函数可以实现代码重用.但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护.同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(modul ...
- 【python3基础】python3 神坑笔记
目录 os 篇 os.listdir(path) 运算符篇 is vs. == 实例 1:判断两个整数相等 实例 2:argparse 传参 实例 3:np.where 命令行参数篇 Referenc ...
- Python3基础语法和数据类型
Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...
- Python3基础-目录
Python3基础-目录(Tips:长期更新Python3目录) 第一章 初识Python3 1.1 Python3基础-前言 1.2 Python3基础-规范 第二章 Python3内置函数&a ...
- Python3基础1
Python介绍及特点 发展史 Python 2 or 3? 安装Python3 Hello World程序 变量 用户输入 模块初识 .pyc是个什么? 数据类型初识 数据运算 表达式if ...e ...
随机推荐
- 关于JDBC和连接池我学到的(转载保存)
1.JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模 ...
- 认识enum
今天在看别人代码的时候发现他的使用enum的方法,我是不会用的,因此记录一下. 这个是一个语音合成,今天改为使用百度的语音,可以免费支持离线.在线. 在语音合成的使用,会使用许多的词句让其合成语音,用 ...
- 多渠道打包如何运行/debug指定的渠道
如果配置了多渠道,像这里有3个,分别为flavor1,flavor2,flavor3 productFlavors { flavor1{ packageName "com.xxx.yymad ...
- 【oracle入门】数据库系统范式
为了规范关系数据模型,关系型数据库系统在设计时必须遵守一定的规则,这种规则成为关系型数据库范式. 1.第一范式1NF 如果字段中的值已经是无法再分割的值,则符合第一范式,即1NF. 2.第二范式2NF ...
- 我在MySQL免安装版使用过程中遇到的问题记录【二】
跟上次问题不一样!这次是重新安装MySQL免安装版,各种文件搞对了还是错了也不清楚. 现在是:下载完安装包之后,按照现在的下方的代码,创建一个my-default.ini文件并放入下代码: [mysq ...
- git教程:管理修改
转载:管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行 ...
- AS 400 常用命令
转自:http://blog.chinaunix.net/uid-22375044-id-3049793.html 一.命令技巧 命令构成: CRT* (Creat) 创建 WRK* (Work Wi ...
- redis数据库可视化工具(RedisDesktopManager)
RedisDesktopManager下载地址:https://redisdesktop.com/download 使用过程中可能会遇到的问题我在文后有所总结 我下载Windows版的: 我的redi ...
- Java程序第二次作业
1.编写“人”类及其测试类.1.1 “人”类: 类名:Person 属性:姓名.性别.年龄.身份证号码 方法:在控制台输出各个信息1.2 测试类 类名:TestPerson 方法:main ...
- Codeforces1099F. Cookies(线段树+dp+贪心+博弈)
题目链接:传送门 思路: 分析到处理节点时的吃cookie的顺序了,然鹅不会用线段树维护前缀和.技术门槛QAQ... 很容易想到可以从root开始搜索,每次深入消耗时间2*边权w. 然后对于深入到点u ...