列表 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的更多相关文章

  1. python3基础视频教程

    随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...

  2. Python3基础-特别函数(map filter partial reduces sorted)实例学习

    1. 装饰器 关于Python装饰器的讲解,网上一搜有很多资料,有些资料讲的很详细.因此,我不再详述,我会给出一些连接,帮助理解. 探究functools模块wraps装饰器的用途 案例1 impor ...

  3. 2. Python3 基础入门

    Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...

  4. python002 Python3 基础语法

    python002 Python3 基础语法 编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -* ...

  5. Python3基础(十二) 学习总结·附PDF

    Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...

  6. Python3基础(八) 模块

    在程序中定义函数可以实现代码重用.但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护.同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(modul ...

  7. 【python3基础】python3 神坑笔记

    目录 os 篇 os.listdir(path) 运算符篇 is vs. == 实例 1:判断两个整数相等 实例 2:argparse 传参 实例 3:np.where 命令行参数篇 Referenc ...

  8. Python3基础语法和数据类型

    Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...

  9. Python3基础-目录

    Python3基础-目录(Tips:长期更新Python3目录) 第一章 初识Python3  1.1 Python3基础-前言  1.2 Python3基础-规范 第二章 Python3内置函数&a ...

  10. Python3基础1

    Python介绍及特点 发展史 Python 2 or 3? 安装Python3 Hello World程序 变量 用户输入 模块初识 .pyc是个什么? 数据类型初识 数据运算 表达式if ...e ...

随机推荐

  1. 关于JDBC和连接池我学到的(转载保存)

    1.JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet.beans)中建立数据库连接. 进行sql操作 断开数据库连接. 这种模 ...

  2. 认识enum

    今天在看别人代码的时候发现他的使用enum的方法,我是不会用的,因此记录一下. 这个是一个语音合成,今天改为使用百度的语音,可以免费支持离线.在线. 在语音合成的使用,会使用许多的词句让其合成语音,用 ...

  3. 多渠道打包如何运行/debug指定的渠道

    如果配置了多渠道,像这里有3个,分别为flavor1,flavor2,flavor3 productFlavors { flavor1{ packageName "com.xxx.yymad ...

  4. 【oracle入门】数据库系统范式

    为了规范关系数据模型,关系型数据库系统在设计时必须遵守一定的规则,这种规则成为关系型数据库范式. 1.第一范式1NF 如果字段中的值已经是无法再分割的值,则符合第一范式,即1NF. 2.第二范式2NF ...

  5. 我在MySQL免安装版使用过程中遇到的问题记录【二】

    跟上次问题不一样!这次是重新安装MySQL免安装版,各种文件搞对了还是错了也不清楚. 现在是:下载完安装包之后,按照现在的下方的代码,创建一个my-default.ini文件并放入下代码: [mysq ...

  6. git教程:管理修改

    转载:管理修改 现在,假定你已经完全掌握了暂存区的概念.下面,我们要讨论的就是,为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行 ...

  7. AS 400 常用命令

    转自:http://blog.chinaunix.net/uid-22375044-id-3049793.html 一.命令技巧 命令构成: CRT* (Creat) 创建 WRK* (Work Wi ...

  8. redis数据库可视化工具(RedisDesktopManager)

    RedisDesktopManager下载地址:https://redisdesktop.com/download 使用过程中可能会遇到的问题我在文后有所总结 我下载Windows版的: 我的redi ...

  9. Java程序第二次作业

    1.编写“人”类及其测试类.1.1 “人”类: 类名:Person 属性:姓名.性别.年龄.身份证号码 方法:在控制台输出各个信息1.2 测试类 类名:TestPerson 方法:main ...

  10. Codeforces1099F. Cookies(线段树+dp+贪心+博弈)

    题目链接:传送门 思路: 分析到处理节点时的吃cookie的顺序了,然鹅不会用线段树维护前缀和.技术门槛QAQ... 很容易想到可以从root开始搜索,每次深入消耗时间2*边权w. 然后对于深入到点u ...