python列表、元组、字典

简介:

1.列表

列表是由一序列特定顺序排列的元素组成的。可以把字符串,数字,字典等都可以任何东西加入到列表中,列表中的元素之间没有任何关系。列表也是自带下标的,默认也还是从0开始。列表常用方括号表示,即:[],元素用逗号隔开。

例子:

a = ["huangzhenping","laoma",123]

print(a)

print(type(a))



说明:list 里面的元素的数据类型也可以不同;list 元素也可以是另一个 list,例:

list2 = ['python', 'java', ['asp', 'php'], 'scheme']


常用功能:

append:追加

例子:

a = ["huangzhenping","laoma","laozhao"]

print(a)

a.append("song")

print(a)


index:返回下标位置

a = ["huangzhenping","laoma","laozhao"]

print(a[0],a[2])

print(a.index("laoma"))



insert:往什么位置插入对象

a = ["huangzhenping","laoma","laozhao"]

a.insert(1,"song")

print(a)


pop:删除末尾元素

a = ["huangzhenping","laoma","laozhao"]

a.pop()

print(a)


remove:自定义删除

a = ["huangzhenping","laoma","laozhao"]

a.remove("huangzhenping")

print(a)


sort:排序(升序)

a = [1,3,6,7,4]

a.sort()

print(a)


reverse:反序

a = [1,3,6,7,4]

a.reverse()

print(a)


切片:(从1至5,2为步长)

a = [1,2,3,4,5,6,7,8,9,10]

print(a[0:4:2])



2.元组

tuple 和 list 非常类似,但是 tuple 一旦初始化就不能修改,tuple唯一和list定义的区别就是[]变成了(),它也没有 append(),insert()这样的方法

例子:

a = "abcdefghijkmn"

print(tuple(a))

print(type(tuple(a)))


注:有逗号时,为元组类型

例子:

a = ("hello")

print(a)

print(type(a))

b = ("hello",)

print(b)

print(type(b))

结果:

hello

<type 'str'>

('hello',)

<type 'tuple'>


tuple常用方法:


count:统计元组中相同元素的个数

a = ("a","b","c","a")

print(a.count("a"))


index:元组中某元素第一次出现的下标

a = ("a","b","c","d")

print(a.index("d"))



3.字典

字典是由花括号{}来包含其数据的,花括号内包含键(key)和其对应的值(value),一对键和值成为一个项,键和值用冒号:隔开,项和项之间用逗号,隔开,空字典就是不包含任何项的字典,也可理解为空字典就是花括号内不包含任何内容,直接使用花括号{}表示.


字典赋值有三种方式:

例子:

a = {'name''huang''age''20'}

b = dict(name="huang"age=20)

c=dict([('name''huang'), ('age'20)])   #序列中也是一个序列或元组

print(type(a))

print(type(b))

print(type(c))


结果:

<type 'dict'>

<type 'dict'>

<type 'dict'>



例子:

a = dict(name="li",age=28)

print(a)

print(type(a))


说明:避免 key 不存在的错误的两种办法:

一是通过 in 判断 key 是否存在:

'Thomas' in dict1   #


二是通过 dict 提供的 get 方法

如果 key 不存在,可以返回 None(无结果)


自动识别为dict类型,把等于号和逗号看成冒号

例子:

a = dict({("name","li"),("age",28)})

print(b)

print(type(b))



字典常用功能:

clear:清空字典

copy:复制

get:获取信息,没有则返回为空


例子:

a = {"name":"li","age":28}

print(a.get("name"))



setdefault:存在则不变,不存在则设置一个值

例子:

a = {"name":"li","age":28}

print(a.setdefault("name","huangzhenping"))

print(a.setdefault("address","shenzhen"))

print(a)



keys:获取所有键(对象)

例子:

a = {"name":"li","age":28}

print(a.keys())


values:获取所有对象的值

例子:

a = {"name":"li","age":28}

print(a.values())


iteritems:一般用于for循环,一个一个取出来(避免占内存)

例子:

a = {"name":"li","age":28}

print(a.iteritems())

for x,y in a.iteritems():

   print(x,y)


pop:删除对象key,实际上对应的值没有被删

例子:

a = {"name":"li","age":28}

a.pop("name")

print(a)


字典的高级操作

fromkeys:将一个列表引入字典中,并设置一个默认值

例子:

list1=["a","b","c"]

dict1={}

n=dict.fromkeys(list1,"test")

print(n)

print(type(n))


zip:将两个列表叠加成一个列表,如果要变成字典,则dict(zip(l1,l2))

list1=["a","b","c"]

list2=["d","e","f"]

list3=zip(list1,list2)

print(list3)

print(type(list3))

print(dict(list3))


update:将dirct_test字典和k字典合并

dict1={"a":"zhang","b":"huang"}

dict2={"c":"zhao","d":"sun"}

dict1.update(dict2)

print(dict1)


sorted:对字典排序, lambda是一个匿名函数,reverse = False 升序

dict1=dict(a=1,c=3,d=4,b=2,e=5)

print(dict1)

print sorted(dict1.iteritems())

print sorted(dict1.iteritems(),key lambda d:d[1], reverse False)




4.set集合

set 和 dict 类似,也是一组 key 的集合,但不存储 value。由于 key 不能重复,所以,在 set 中,没有重复的 (key重复元素在 set 中自动被过滤)


add(key)方法可以添加元素到 set 中

例子:

s = set([1, 1, 2, 2, 3, 3])

s.add(4)


remove(key)方法可以删除元素

例子:

s.remove(4)


说明:set 可以看成数学意义上的无序和无重复元素的集合,因此,两个 set 可以做数学意义上的 交集、并集等操作




5.帮助

查看数据类型:print(type(variable))

查看属性:dir(variable)

查看帮助:help(sorted)

看具体源码: Ctrl + 鼠标左键



6. 变量的强制转换

例子:

list1作为keylist2作为value,生成一个新的字典

a = [1,2,3,4,5,6,7]

b = ['a','b','c','d','e','f','g']

dict(zip(a,b))


例子:

两个字典的合并

dict1={1:[1,11,111],2:[2,22,222]}

dict2={3:[3,33,333],4:[4,44,444]}


dictMerged1=dict(dict1.items()+dict2.items())

dictMerged2=dict(dict1,











本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1975343,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
安全 数据处理 索引
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
44 9
|
26天前
|
人工智能 数据库连接 开发工具
[oeasy]python069_当前作用域都有些什么_列表dir_函数_builtins
本文介绍了Python中`dir()`函数的使用方法及其作用。`dir()`可以列出当前作用域内的所有变量和成员,类似于`locals()`,但`dir()`不仅限于本地变量,还能显示模块中的所有成员。通过`dir(__builtins__)`可以查看内建模块中的所有内建函数,如`print`、`ord`、`chr`等。此外,还回顾了`try-except-finally`结构在数据库连接中的应用,并解释了为何`print`函数可以直接使用而无需导入,因为它位于`__builtins__`模块中。最后,简要提及了删除`__builtins__.print`的方法及其影响。
35 0
|
2月前
|
JSON 监控 安全
深入理解 Python 的 eval() 函数与空全局字典 {}
`eval()` 函数在 Python 中能将字符串解析为代码并执行,但伴随安全风险,尤其在处理不受信任的输入时。传递空全局字典 {} 可限制其访问内置对象,但仍存隐患。建议通过限制函数和变量、使用沙箱环境、避免复杂表达式、验证输入等提高安全性。更推荐使用 `ast.literal_eval()`、自定义解析器或 JSON 解析等替代方案,以确保代码安全性和可靠性。
73 2
|
3月前
|
索引 Python
Python列表
Python列表。
68 8
|
3月前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
65 9
|
3月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
96 14
|
3月前
|
数据挖掘 大数据 数据处理
python--列表list切分(超详细)
通过这些思维导图和分析说明表,您可以更直观地理解Python列表切分的概念、用法和实际应用。希望本文能帮助您更高效地使用Python进行数据处理和分析。
193 10
|
4月前
|
XML JSON API
如何使用Python将字典转换为XML
本文介绍了如何使用Python中的`xml.etree.ElementTree`库将字典数据结构转换为XML格式。通过定义递归函数处理字典到XML元素的转换,生成符合标准的XML文档,适用于与旧系统交互或需支持复杂文档结构的场景。示例代码展示了将一个简单字典转换为XML的具体实现过程。
43 1
|
4月前
|
数据处理 开发者 Python
Python中的列表推导式:简洁高效的数据处理
在编程世界中,效率和可读性是代码的两大支柱。Python语言以其独特的简洁性和强大的表达力,为开发者提供了众多优雅的解决方案,其中列表推导式便是一个闪耀的例子。本文将深入探讨列表推导式的使用场景、语法结构及其背后的执行逻辑,带你领略这一特性的魅力所在。
|
4月前
|
JavaScript 前端开发 算法
python中的列表生成式和生成器
欢迎来到瑞雨溪的博客,这里是一位热爱JavaScript和Vue的大一学生的天地。通过自学前端技术2年半,现正向全栈开发迈进。如果你从我的文章中受益,欢迎关注,我将持续更新高质量内容,你的支持是我前进的动力!🎉🎉🎉
63 0