搞定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常用的数据结构就说完了,有兴趣的同学敲敲代码感觉一下。

//~~

相关推荐
mabing99320 分钟前
Qt QMessageBox、QDialogButtonBox中英文翻译动态切换
开发语言·qt
BerryS3N21 分钟前
Java 后端转型大模型:Demo 能跑不等于能上线
java·人工智能·python·java后端·spring ai·langchain4j·大模型转型
Sagittarius_A*22 分钟前
【RCELABS】Level 17~18 —— PHP命令执行函数与环境变量注入
开发语言·安全·web安全·靶场·php·rce
冻柠檬飞冰走茶23 分钟前
PTA基础编程题目集 7-19 支票面额(C语言实现)
c语言·开发语言·数据结构·算法
制造数据与AI践行者老蒋26 分钟前
智联工坊实战:从“金鱼记忆”到“记住了”:给制造Agent装上记忆芯片的完整指南
人工智能·python·langchain·制造
某林21228 分钟前
ros从底层硬件到 Web 端部署
python·机器人·硬件架构·ros2
破碎的南瓜35 分钟前
靶场中使用到的php函数以及每种漏洞的防御方式
开发语言·php
谁看我谁 狼家二丫1 小时前
局域网文件共享实战:从“账户被禁用”到成功互传文件
开发语言·php
FBI HackerHarry浩1 小时前
AI大模型开发V2第四阶段机器学习概述
人工智能·python·机器学习
axinawang1 小时前
第22课 石头剪刀布
python