python学习笔记06-之列表元组字典

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记06-之列表元组字典相关的知识,希望对你有一定的参考价值。

一、列表
str1 = ‘ahjfhaj1knvr‘
print(list(str1))
print(type(str1))
a = [‘a‘,‘1‘,789]
print(a)
print(type(a))
#显示
# [‘a‘, ‘h‘, ‘j‘, ‘f‘, ‘h‘, ‘a‘, ‘j‘, ‘1‘, ‘k‘, ‘n‘, ‘v‘, ‘r‘]
# <type ‘str‘>
# [‘a‘, ‘1‘, 789]
# <type ‘list‘>

查看列表的方法
print(dir(a))

append 追加
a.append(‘world‘)
print(a)
#显示[‘a‘, ‘1‘, 789, ‘world‘]

pop 末尾删除一个元素
print(‘==‘*30)
a.pop()
print a
#显示
# ==============================
# [‘a‘, ‘1‘, 789]

index 符合条件的列表下标,联想str的find
print(a[0],a[1],a[2],a.index(‘a‘))
#显示(‘a‘, ‘1‘, 789, 0)

insert 插入元素
a = [‘a‘, ‘1‘, 789, ‘world‘]
a.insert(0, “insert0”)
print a
#显示[‘insert0‘, ‘a‘, ‘1‘, 789, ‘world‘]
a.insert(2,"insert2")
print a
#显示[‘insert0‘, ‘a‘, ‘insert2‘, ‘1‘, 789, ‘world‘]

remove 删除第一个匹配到的元素
a.append(‘1‘)
print(a)
a.remove(‘1‘)
print a
#显示
# [‘insert0‘, ‘a‘, ‘insert2‘, ‘1‘, 789, ‘1‘]
# [‘insert0‘, ‘a‘, ‘insert2‘, 789, ‘1‘]

sort 排序
print(‘sort‘*10)
print(a)
a.sort()
print(a)

#显示
# sortsortsortsortsortsortsortsortsortsort
# [‘insert0‘, ‘a‘, ‘insert2‘, 789, ‘1‘]
# [789, ‘1‘, ‘a‘, ‘insert0‘, ‘insert2‘]

reverse 反序
print(‘reverse ‘*10)
print(a)
a.reverse()
print(a)
#显示
# reverse reverse reverse reverse reverse reverse reverse reverse reverse reverse
# [789, ‘1‘, ‘a‘, ‘insert0‘, ‘insert2‘]
# [‘insert2‘, ‘insert0‘, ‘a‘, ‘1‘, 789]

切片
#索引从0开始,右索引数字取该数字-1
print(‘--‘*10)
print(a)
print(a[:])
print(a[3:])
print(a[1:3])
#显示
# --------------------
# [‘insert2‘, ‘insert0‘, ‘a‘, ‘1‘, 789]
# [‘insert2‘, ‘insert0‘, ‘a‘, ‘1‘, 789]
# [‘1‘, 789]
# [‘insert0‘, ‘a‘]

print(‘% ‘*10)
a.append(‘last‘)
print(a)
print(a[1:5:2])
#1开始位置,5结束位置且 切片不取结束值,2为step步长值,每次加2取
#显示
# % % % % % % % % % %
# [‘insert2‘, ‘insert0‘, ‘a‘, ‘1‘, 789, ‘last‘]
# [‘insert0‘, ‘1‘]

二、元组
相当于元素不可变的list
str1=‘mnzxoluiqrnklcx‘
print(tuple(str1))
print(type(tuple(str1)))
#显示
# (‘m‘, ‘n‘, ‘z‘, ‘x‘, ‘o‘, ‘l‘, ‘u‘, ‘i‘, ‘q‘, ‘r‘, ‘n‘, ‘k‘, ‘l‘, ‘c‘, ‘x‘)
# <type ‘tuple‘>

单个tuple元素的时候,元素后面要加逗号,否则python解释器不会识别为tuple类型
m=(‘abcd‘)
print(type(m))
#显示 <type ‘str‘>

n=(‘abcd‘,)
print(type(n))
#显示 <type ‘tuple‘>

x=(456)
print(type(x))
y=(456,)
print(type(y))
#显示
# <type ‘int‘>
# <type ‘tuple‘>

tuple的方法
print(dir(x))

count统计某个元素的个数
tul = (‘a‘, ‘c‘, ‘t‘, ‘i‘, ‘c‘, ‘t‘)
print(_tul.count(c))
#显示2

index 返回某个元素首次出现的下标
print(tul.index(‘c‘))
#显示1
print(tul.index(‘h‘))
#元素不存在时报错
#print(tul.index(‘h‘))
#ValueError: tuple.index(x): x not in tuple

三、字典
是一种可变容器模型,可存储任意类型对象
key:value形式
键值对内用冒号分割,键值对之间用逗号分隔,整个字典包括在花括号{}中


字典赋值方式1
k = {‘name‘: ‘chris‘, ‘weight‘:‘136‘, ‘age‘:20}
print(k)
print(type(k))
#显示
# {‘age‘: 20, ‘name‘: ‘chris‘, ‘weight‘: ‘136‘}
# <type ‘dict‘>

字典赋值方式2
k1 = dict(a = 1, b = 3, c = 6, f = 9)
print(k1)
#显示
# {‘a‘: 1, ‘c‘: 6, ‘b‘: 3, ‘f‘: 9}

字典复制方式3(不常用)
k3 = dict([(‘name‘, ‘chris‘), (‘weight‘,120)])
print(k3)
#显示
{‘name‘: ‘chris‘, ‘weight‘: 120}

字典常用的方法
print(dir(k3))

clear 清除内容
k1.clear()
print(k1)
#显示
# {}

#get方法
print(k3.get(‘name‘))
print(k3.get(‘weight‘))
print(k3.get(‘job‘))
#显示
# chris
# 120
# None

#setdefault方法
#如果有value,则获取原有值,如果为空,则取分配的值
print(k3.setdefault(‘name‘))
print(k3.setdefault(‘weight‘,‘999‘))
print(k3.setdefault(‘job‘,‘Engineer‘))
#显示
# chris
# 120
# Engineer

#keys方法
获取字典的所有key值、
print(k3.keys())
#扩展学习itemkeys

#values方法
获取字典的所有value值
print(k3.values())
#扩展学习itemvalues

#iteritems方法
print(k3.iteritems())
#显示
# <dictionary-itemiterator object at 0x0000000002E9BEF8>

for e, f in k3.iteritems():
    print(e, f)
#显示
(‘job‘, ‘Engineer‘)
(‘name‘, ‘chris‘)
(‘weight‘, 120)

#items方法
print(k3.items())
#显示
[(‘job‘, ‘Engineer‘), (‘name‘, ‘chris‘), (‘weight‘, 120)]

推荐开发中使用iteritems,可以更好利用系统资源,开发效率更高
取一个用一个,随用随取,不一次全部取出
iterkeys,itervalues使用类似、

#update方法

#pop方法
k3 = {‘job‘: ‘Engineer‘, ‘name‘: ‘chris‘, ‘weight‘: 120}
print(k3)
k3.pop(‘name‘)
print(k3)
#显示
# {‘job‘: ‘Engineer‘, ‘name‘: ‘chris‘, ‘weight‘: 120}
# {‘job‘: ‘Engineer‘, ‘weight‘: 120}

k3.pop(‘120‘)
print(k3)
#显示报错
#pop只能删除key,不能用于value

字典的高级操作
fromkeys用法
p = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
m = {}
n = m.fromkeys(p, 123)
n = dict.fromkeys(p, 123)
print(n)


#zip函数,将两个列表元素叠加,成为字典
p1 = [‘a‘, ‘b‘, ‘c‘, ‘d‘]
p2 = [1, 2, 3, 4]
dict_test = dict(zip(p1, p2))
print(dict_test)
#显示
# {‘a‘: 1, ‘c‘: 3, ‘b‘: 2, ‘d‘: 4}

#update 将两个字典元素叠加
print(k3)
dict_test.update(k3)
print(dict_test)
#显示
# {‘a‘: 1, ‘c‘: 3, ‘b‘: 2, ‘d‘: 4, ‘weight‘: 120, ‘job‘: ‘Engineer‘, ‘name‘: ‘chris‘}

#对字典进行排序
mm = dict(a=1, b=10, c=3, d=9)
print(mm)
print sorted(mm.iteritems(),key = lambda d: d[0], reverse = False)
#显示
# [(‘a‘, 1), (‘b‘, 10), (‘c‘, 3), (‘d‘, 9)]

本文出自 “疯疯小和尚” 博客,转载请与作者联系!

以上是关于python学习笔记06-之列表元组字典的主要内容,如果未能解决你的问题,请参考以下文章

Python3.5学习笔记-列表元组字典

python3学习笔记——数字字符串列表字典元组

Python学习笔记集合元组字典集合

Python3学习笔记--数据类型:字符串列表元组数字字典集合

python学习笔记第四节

python学习笔记之列表与元组