搞定python之三----序列、字典及集合

发布于:2025-03-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

本文是《搞定python》系列的第三篇,演示了python的序列、字典和集合的简单用法和相互之间的区别。特别是序列,初次看的话没有java来的得劲,java区分的比较细,python虽然统一成一类,但是忘掉元组,字符串和列表就是java中的字符串和list,就这样理解即可。

1、序列

python的序列包括:字符串、列表和元组。字符串好理解,列表类似于java中的List,元组是不可变的列表。python中这些数据都是序列,都可以通过下标的方式访问元素。

1.1、字符串

字符串和java中基本一样,python支持从后往前的索引,最后一个字符的索引是“-1”。其他就没啥了。

# 字符串测试

print("----字符串测试---")
str1 = '今天是星期三,下班了,你有没有陪家人吃完晚饭呢?'

# 下面使用了占位符的方式打印,当然用字符串拼接的方式也可以,只是展示一下用法。
# 注意括号内写法与java的区别,java中要用逗号分割。
print('str1[0] = %s' %(str1[0]))           # 打印第一个字符
print('str1[-1] = %s' %(str1[-1]))         # 打印倒数第一个字符
print("str1的长度 = %s" %(int(len(str1))))  # 打印字符串的长度
print("str1 + aaa = %s" %(str1 + 'aaa'))   # 拼接

# 下面这个功能在python中叫”切片“
print("截取str1第1到10个字符,结果= %s" %(str1[1:10]))

1.2、列表

列表的测试代码如下:

# 列表测试

print("----列表测试---")
str1 = '今天是星期三下班了,你有没有陪家人吃完饭呢?'
print("str1 = " + str1)

print() # 不打任何内容就是换行了
print("str1的类型:" + str(type(str1)))  # type()用来获取变量的类型

list1 = list(str1)  # 转型成列表
print("字符串转成列表, list1 的类型 =  " + str(type(list1)))  # 现在是列表了
print("list1 = "  + str(list1))

print()
print("---list2 = str1.split(',')----")
list2 = str1.split(",")
print("按逗号分割成列表:" + str(list2))
print("list2.len() = %d, list2[-1] = %s" %(len(list2), list2[-1]))  # 最后一个元素的索引是-1

# 从list2获取一个子列表list3
print()
print("---list3=list2[-1]:---")
list3 = list2[-1]
for s in list3:
    print(s)

# 创建一个空的列表
list5 = []

列表不多说了,和java的list类似。但是python可以从末尾往前,最后一个元素是“-1”。上节中,我创建的数组,其实就是列表,这里澄清一下。

注意:创建空列表:list =[],中括号 ,别写错了。

1.3、元组

元组和列表的唯一区别:元组只读,延伸的意思就是元组创建后,不可添加、删除元素,更不能更改元素。下面看看代码:

# 元组测试

str1 = '今天是星期三下班了,你有没有陪家人吃完饭呢?'

tuple1 = tuple(str1)
print("tuple = " + str(tuple))

#tuple1[1] = 'hello'    # 编译出错,元组元素只读
print("tuple = " + str(tuple))

print()
tuple2 = str1.split(",")
print("tuple2 = " + str(tuple2))
print(tuple2[1])

注意:空元组emptyTuple = (),注意和列表的区别,虽然它不可变。

2、字典

字典和java中的Map类似,都是key、value结构。

# 字典测试

dict1 = {"01":"张三", "02":"李四", "09":"小黑胖子"}
print("---获取03和09的值---")
print(dict1.get("03"))
print(dict1.get("09"))

print("\n---添加一对key、value--")
dict1["100"] = "抽烟喝酒"
print(dict1)

print("\n遍历")
for item in dict1.items():
	print(item)

注意:创建一个空字典:dict2 = {},大括号哦。

3、集合

和java的set类似,set没有顺序且没有重复的元素。看代码

# 集合测试

set1 = {"张三", "李四", "王五", "郭德纲", "李云霄", "王五", "郭德纲"}
print("set1 = " + str(set1))

set1.add("赵鹏")
set1.add("曹文")
set1.add("马世民")

print("set1 = " + str(set1))

在这里插入图片描述
注意:set的定义用的也是{},和map相同。

扩展一下,java中的Set其实就是用Map实现的,只是value为null而已。有兴趣的同学看看源代码。

好了,python常用的数据结构就说完了,有兴趣的同学敲敲代码感觉一下。

//~~