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

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

1、序列

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

1.1、字符串

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

python 复制代码
# 字符串测试

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、列表

列表的测试代码如下:

python 复制代码
# 列表测试

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、元组

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

python 复制代码
# 元组测试

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结构。

python 复制代码
# 字典测试

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没有顺序且没有重复的元素。看代码

python 复制代码
# 集合测试

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

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

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

注意:set的定义用的也是{},和map相同。

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

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

//~~

相关推荐
小峰编程5 分钟前
Python数据类型进阶——详解
linux·运维·服务器·开发语言·python·pycharm·swift
m0_466923806 分钟前
【java】字符串存储的内存原理
java·开发语言
寅春树18 分钟前
python虚拟环境venv使用
python
Rverdoser23 分钟前
conda创建Python虚拟环境的原理
开发语言·python·conda
我没想到原来他们都是一堆坏人32 分钟前
idea中lombok插件的安装与使用
java·开发语言
苦学LCP的小猪36 分钟前
OpenCV之颜色空间转换
python·opencv
SomeB1oody42 分钟前
【Python机器学习】2.2. 聚类分析算法理论:K均值聚类(KMeans Analysis)、KNN(K近邻分类)、均值漂移聚类(MeanShift)
python·算法·机器学习·聚类·分类算法
Vam的金豆之路1 小时前
OpenManus与DeepSeek已联通,有详细操作文档
后端·python
朱剑君2 小时前
用Python写一个天气预报小程序
python·小程序