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

//~~

相关推荐
黄雪超2 小时前
JVM——函数式语法糖:如何使用Function、Stream来编写函数式程序?
java·开发语言·jvm
ThetaarSofVenice2 小时前
对象的finalization机制Test
java·开发语言·jvm
思则变2 小时前
[Pytest] [Part 2]增加 log功能
开发语言·python·pytest
lijingguang2 小时前
在C#中根据URL下载文件并保存到本地,可以使用以下方法(推荐使用现代异步方式)
开发语言·c#
漫谈网络2 小时前
WebSocket 在前后端的完整使用流程
javascript·python·websocket
¥-oriented3 小时前
【C#中路径相关的概念】
开发语言·c#
CoderCodingNo3 小时前
【GESP】C++四级考试大纲知识点梳理, (7) 排序算法基本概念
开发语言·c++·排序算法
恋猫de小郭3 小时前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
JosieBook3 小时前
【Java编程动手学】使用IDEA创建第一个HelloJava程序
java·开发语言·intellij-idea
Thomas_YXQ3 小时前
Unity3D DOTS场景流式加载技术
java·开发语言·unity