NO.6 列表,元祖,字典

来源:互联网 发布:网络销售具体做什么 编辑:程序博客网 时间:2024/06/06 01:04
列表

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2017/10/19 14:27
# @author : hezefan
# @file : 9.py

'''列表'''

str1 ='asdsa'
print(list(str1))##输出['a', 's', 'd', 's', 'a']

a = ['a',123,'b','c']
print(a)
print(type(a))##list
print(dir(a))

#append 列表末尾追加元素
a.append('hello')#在列表a末尾追加一个hello
print(a)

#pop 列表末尾删除元素
print('###'*50)
a.pop()
print(a)

#index 跟str的find方法差不读
print(a[0],a[1],a[2])#输出('a', 123, 'b')
print(a.index(123))##查找元素的位置

#insert 列表中插入一个元素
a.insert(0,'fan')#在0的位置插入fan
print(a)

#remove 删除元素
a.remove(123)#将元素123删除,如果有两个相同的元素,默认删除第一个
printa

#sort 对列表进行排序
printa
a.sort()
print(a)

#reverse 对列表进行反向排序
a.reverse()
print(a)

#列表切片 注意,切片时候最后一位娶后面数字-1的位置元素
print(a[:])#将a的所有元素打印出来
print(a[3:])#从3位置开始,将剩余元素打印出来
print(a[:3])#把3位置之前的元素打印出来
print(a[1:3])#把1,2位置的元素打印出来
b = [0,1,2,3,4,5,6]
print(b[1:5:2])#取值为[1, 3],最后的2表示取值时候的间隔


##元组是一个不可变的list,不可以增删
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2017/10/19 17:13
# @author : hezefan
# @file : 10.py
'''元祖'''

str1 ='dafdsb.fj,opfasnj5'
print(tuple(str1))##将字符串转化为元组
a =tuple(str1)
print(type(a))##输出tuple
b = ('a','sda',123)##直接定义元组
print(type(b))

#但是命名tuple的时候要注意:单个元素的元组时候,元素后面要加上逗号,否则python解析器会认为这是个字符串
c = ('asd')##c是字符串
print(type(c))
d =('dasdas',)##d是元组
print(type(d))

#count统计某个元素的个数
tu1 = ('a','b','c','a','c','a','d')
print(tu1.count('a'))##统计a有多少个
##index判断某个元素的位置
print(tu1.index('d'))## 判断d的位置,如果元素不存在则会报错
print(tu1.index('e'))

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Time : 2017/10/19 21:00
# @author : hezefan
# @file : 11.py
'''字典'''

#字典 可变容器模型,可存储任意类型对象,key value用:隔开,不同的元素用逗号隔开。key不可变,值可以改变

##字典赋值的三种方法
a = {'name':'hezefan','age':100,'sex':'gong'}
b =dict(a=1,b=2,c='abc')
c =dict([('name','hezefan'),('age',20)])
print(a)
print(b)
print(c)
print('#####'*30)

#字典常用的方法
print(dir(c))

#get方法,获取key的值.如果key指没有返回none
print(a.get('name'))

#setdefault,和get的方法类似,但是呢,当key值不存在,可以指定返回值,且增加这组元素
print(a.setdefault('name'))
print(a.setdefault('names','bejing'))##key中没有names,设置返回值为beijing,不设置则返回为none.而且会给字典中增加设置的一组key值
print(a)

#keys获取字典的所有key值,并且以列表的形式打印出来
print(a.keys())
print(a.iterkeys())##将有所key值变成一个对象,现取现用

#values 获取字典所有的值
print(a.values())

#iteritems 将字典变成一个对象,现取现用
print(a.iteritems())#将字典变成一个对象
forx,y ina.iteritems():##推荐采用此种方法
print(x,y)#打印出所有的元素

print(a.items())##同样打印出所有元素,但是字典也别大的话就特别占用内存,推荐采用第一种方法

#has_key判断有没有这个key值
#有key值返回ture,没有返回flase

#pop 将特定的key以及key对应的值删除
print(a)
a.pop('name')##将name以及name对应的值删除
print(a)

#formkeys将列表中的所有值当成字典的key
l1 = ['a','b','c','d']
m =dict.fromkeys(l1,123)
print(m) ##输出{'a': 123, 'c': 123, 'b': 123, 'd': 123}

#zip将两个列表合并为一个字典
l2 = [1,2,3,4]
n =dict(zip(l1,l2))
print(n)

#update 将两个字典合并
n.update(a)
printn

#对字典进行排序 sorted 对字典进行排序,输出的值为列表
mm =dict(a=1,b=2,c=3,d=4)
print(mm)
mn =sorted(mm.iteritems(),key= lambdaxx:xx[1],reverse=False)
##xx随便写,写什么都行,xx[1]中的1表示以第二个值为排序对象,也可为0,false为证的顺序,ture为范旭
print(type(mn))
print(mn)