python基础5

一、列表类型(list)
======================================基本使用======================================
1、用途:记录多个值(同种属性)

2、定义方式:在[]内用逗号分隔开多个任意类型的值
l=['a','b','c'] #l=list(['a','b','c'])


类型转换
l=list('hello')
l=list({'x':1,'y':2})
print(l)



3、常用操作+内置的方法
优先掌握的操作:
l=['a','b','c','d','e']
1、按索引存取值(正向存取+反向存取):即可存也可以取
print(l[0])
print(l[-1])
print(id(l))
l[0]='A'
print(id(l))

l[4]='EEEEEE'
print(l)

l[5]='dddddd'



2、切片(顾头不顾尾,步长)
l=['a','b','c','d','e']
print(l[1:4])
print(l)


3、长度
l=['a','b','c','d','e']
print(len(l))

4、成员运算in和not in
print('a' in l)
print('ssssss' not in l)

5、追加&插入
l=['a','b','c','d','e']
l.append(3333333)
l.append(44444)
print(l)

l.insert(0,11111111111)
print(l)


6、删除
l=['a','b','c','d','e']
del l[0]
res=l.remove('b')
print(l)
print(res)

res=l.pop(0)
print(l)
print(res)




7、循环
l=['a','b','c','d','e']
for item in l:
    print(item)


需要掌握的操作
l=['a','b','a','c','d','e']
print(l.count('a'))

l=['a','b','a','c','d','e']
items=[1,2,3,4,5]
# for item in items:
#     l.append(item)

l.extend(items)
print(l)


l=['a','b','a','c','d','e']
print(l.index('a',2,5))
l.index(123123123123123123123123)

if 123123123123123123123123 in l:
    print(l.index(123123123123123123123123))


l=['a','b','a','c','d','e']
l.reverse()
print(l)

l=[10,-1,3,11,9]
# l.sort(reverse=True)
# print(l)

# print(l.extend(['a','b','c']))
print(l.pop(0))
print(l)



======================================该类型总结====================================
存多个值

有序

可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)


练习题
1. 队列:先进先出
l=[]
# 入队
l.append('first')
l.append('second')
l.append('third')
print(l)
# 出队
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
View Code
二、元组tuple:
======================================基本使用======================================
1、用途:元组就是一个不可变的列表

2、定义方式:在()内用逗号分隔开多个任意类型的元素
t=(1,2.2,'aa',('b','c'),['a','b','c']) # t=tuple(...)
print(type(t))

强调:
l=['a']
print(type(l),l[0])

t=('a',)
print(type(t))
print(t)

msg=('hello world')



类型转换
t1=tuple('hello')
t2=tuple([1,2,3])
print(t1)
print(t2)



3、常用操作+内置的方法
优先掌握的操作:
1、按索引取值(正向取+反向取):只能取
t=(1,2.2,'aa',('b','c'),['a','b','c']
print(t[0])
print(t[-1])

t[0]=1111111111


2、切片(顾头不顾尾,步长)
t=('a','b','c','e','f')
print(t[1:4])


3、长度
print(len(t))

4、成员运算in和not in
print('a' in t)

5、循环
for item in t:
    print(item)


需要掌握的操作
t=('a','b','c','e','a','f')
print(t.index('a',1,5))
print(t.count('a'))


======================================该类型总结====================================
存多个值

有序

不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
t=('a','b','c')
print(id(t))
t=('A','B','C')
print(id(t))

t=('a',111,['b','c'])
print(id(t[0]),id(t[1]),id(t[2]))
t[2][0]='B'
print(t)
print(id(t[0]),id(t[1]),id(t[2]))


t[0]='A'
t[2]=[1,2,3]


l=['a','b','c']
l[0]='A'
三、字典类型dict
======================================基本使用======================================
1、用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性的功能

2、定义方式:在{}用逗号分隔开多个元素,每个元素都是key:value的形式,其中key可以不可变类型,通常是字符串类型
而value可以是任意类型
d={1:'aaa',2.2:'bbb','xxx':'ccc',(1,2,3):'dddd'} #d=dict(...)
print(d[(1,2,3)])


类转换
d=dict(x=1,y=2,z=3)
print(d)

items=[('name','egon'),('age',18),('gender','male')]
d={}
for item in items:
    d[item[0]]=item[1]

d=dict(items)
print(d)

了解
keys=['name','age','gender','height','weight']
d={}
for key in keys:
    d[key]=None

d={}.fromkeys(keys,None)
print(d,type(d))


3、常用操作+内置的方法
优先掌握的操作:
1、按key存取值:可存可取
dic={'name':'egon','age':18}
print(dic['name'])
dic['name']='EGON'
dic['gender']='male'
print(dic)

l=['a','b','c']
l[0]='A'
l[4]='AAA'


2、长度len
dic={'name':'egon','age':18}
print(dic)
print(len(dic))


3、成员运算in和not in :是以字典的key为准的
dic={'name':'egon','age':18}
print('name' in dic)
print('egon' in dic)



4、删除
dic={'name':'egon','age':18}
del dic['name']
print(dic)

res=dic.pop('name')
print(dic)
print(res)

res=dic.popitem()
print(res)


5、键keys(),值values(),键值对items()
在python2
>>> dic={'name':'egon','age':18}
>>>
>>>
>>> dic.keys()
['age', 'name']
>>>
>>>
>>> dic.values()
[18, 'egon']
>>>
>>>
>>> dic.items()
[('age', 18), ('name', 'egon')]

在python3
>>> dic={'name':'egon','age':18}
>>>
>>> dic.keys()
dict_keys(['name', 'age'])
>>> dic.values()
dict_values(['egon', 18])
>>> dic.items()
dict_items([('name', 'egon'), ('age', 18)])

6、循环
dic={'name':'egon','age':18}
for k in dic:
    print(k)

for k in dic.keys():
    print(k)

for v in dic.values():
    print(v)

for k,v in dic.items(): #k,v=('name', 'egon')
    print(k,v)


======================================该类型总结====================================
存一个值or存多个值

有序or无序

可变or不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
四、集合类型set
======================================基本使用======================================
1、用途:I: 关系运算 II:去重
    
2、定义方式:在{}内用逗号分隔开多个元素,但是元素的特点是
I: 集合内的元素必须是不可变类型
II: 集合内元素无序
III: 集合内元素不能重复

s={1,'aaa',2,} #s=set(...)
print(s,type(s))

s=set()
print(s,type(s))

s={1,1,1,1,1,1,1,1,1,1,1,1,'a','a','a'}
print(s)

数据类型转换
res=set('hello')
print(res)

res=set([1,'a','b'])
print(res)


3、常用操作+内置的方法
优先掌握的操作:
1、长度len
2、成员运算in和not in


pythons={'张铁蛋','李铜淡','王金蛋','赵银胆','alex','kevin'}
linuxs={'oldboy','张铁蛋','赵银胆','alex','wxx'}

3、|合集:求所有报名的学生
print(pythons | linuxs)
print(pythons.union(linuxs))


4、&交集:求同时报名两门课程的学生
print(pythons & linuxs)


5、-差集: 求只报名python课程的学员
print(pythons - linuxs)
print(linuxs - pythons) #求只报名linux课程的学员


6、^对称差集:求没有同时报名两门课程的学生
res=(pythons - linuxs) | (linuxs - pythons)
res=pythons ^ linuxs
print(res)


7、==
s1={1,2,3}
s2={3,2,1}
print(s1 == s2)


注意:父子集描述的是一种包含与被包含的关系
8、父集:>=
9、子集:<=
s1={1,2,3}
s2={1,2,3,4}
print(s2 >= s1)
print(s1 <= s2)


需要掌握的
s1={1,2,3}
s1.update({3,4,5,6})
print(s1)

s1={1,'aa','bb',3}
print(s1.pop())

res=s1.remove('bbbbbb')
print(s1)
print(res)

s1.discard('bbb')
s1.add(4)
print(s1)

======================================该类型总结====================================
存多个值

无序

可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)


集合的去重
局限性
1. 只能针对不可变类型
2. 不能保证原来的顺序
names=['egon','egon','egon','alex','alex','kevin']

new_names=list(set(names))
print(new_names)


l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'kevin','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
]
new_l=[]
for dic in l:
    if dic not in new_l:
        new_l.append(dic)

print(new_l)


原文地址:https://www.cnblogs.com/liushen1995/p/10001523.html