前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python入门(三):数据结构

Python入门(三):数据结构

作者头像
披头
发布2019-12-26 10:08:26
9990
发布2019-12-26 10:08:26
举报
文章被收录于专栏:datartisandatartisan

01

字符串 str

  • 可以使用单引号、双引号、三引号指代字符串。
  • 获取字符串:

使用数字下标(python索引从0开始)

使用切片

[m:n]表示第m至n-1个元素,

[:m]表示开始至m-1个元素,

[m:]表示第m个元素至字符串末尾

[-1]表示最后一个元素

  • 字符串格式化:

用+完成字符串拼接,无分隔符

用"分隔符".join完成字符串拼接,且自定义分隔符

使用format函数,{}是占位符,用来存储变量

  • 字符串常用方法列表:

string.lower():转换 string 中的大写字母为小写

string.upper():转换 string 中的小写字母为大写

string.title():所有单词都是以大写开始

string.lstrip():截掉 string 左边的空格

string.rstrip():删除 string 字符串末尾的空格

还有很多方法,这里就不一一列举了。

02

列表 list

保存有序项集合、大小可变(可以增加和删除项)的数据结构。

  • 索引和切片

索引从0开始,至列表长度-1

索引可以是负数,代表从列表末尾往前数

切换list[begin:end],获取切换list内元素,从begin开始,至end结束,不包含end

索引和切换对应的值都可以修改

  • 常用方法

list.append(item),在列表末尾新增一个元素

list.extend(list),在列表末尾新增一个列表

list + list,返回一个新的List合并的list

list.clear(),清空列表中的所有元素

len(list),返回列表的元素个数

for i in list:

print(i) #按顺序遍历列表

for idx,value in enumerate(list):

print(idx, value) #用下标和数值遍历列表

for idx in range(len(list)):

print(idx, list[idx]) #用下标和数值遍历列表

list.sort(key=None, reverse=False),对list进行排序

list.reverse(),翻转list自身

  • 列表推导式

列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。

代码语言:javascript
复制
case1:计算10以内的所有偶数的平方,存入一个列表
如果不用列表推导式:squares = []for x in range(10):   ifx%2 == 0:       squares.append(x*x)       如果使用列表推导式:squares = [x*x for x in range(10) if x %2== 0]

03、元组 tuple

  • 一种类似列表的数据序列类型
  • 要点是不可变,不可以添加、删除、更新元素
  • 用两个小括号包括起来,元素之间用逗号分隔
  • 创建方式
代码语言:javascript
复制
student = (1001, 'xiaoming', 20)# 元组的括号可以省略:tup = "a", "b", "c", "d"# 创建空元组和单个元素元组的方式:tup = ()tup = (50,)
  • 索引和切片
代码语言:javascript
复制
# 元组和列表一样支持索引和切片,但是不能更改元素# 得到单个元素tup[idx]# 得到切片,类型也是元组tup[begin:end]# 给元素赋值将会报错student[0] = 1002 会报错
  • 常用方法:
代码语言:javascript
复制
len(tup),得到元素个数tup1+tup2,合并两个元组,得到一个新的元组e in tup,判断元素是否在元组中for x in tup: print(x),用for循环遍历元组tuple(list),把一个列表变成元组x,y,z=tuple,将tuple的元素挨个拆包赋值给x,y,z

04

字典 dict

字典dict是一种KEY:VALUE的数据结构,可以根据KEY设置和获取对应的VALUE

代码语言:javascript
复制
语法: dict = {key1:value1, key2:value2}举例: d = {"id":123, "name":"liming"}
  • 字典dict和列表list的对比

列表用顺序数字做索引,字典用Key做索引,相当于给每个元素进行了命名("3号学生"和"xm同学"的区别)

如果有一个数据列表:[(11, A), (12, B), (13, C)],要在其中查找B这个条目,需要遍历列表查找;

如果使用字典{A:11, B:12, C:13},直接使用get(B)取出,字典具有超级快的按KEY查找速度

  • 创建方式:
代码语言:javascript
复制
d = {"id":123, "name":"liming", "age":20}创建空列表:d = {}
  • 获取数据:
代码语言:javascript
复制
print(d["id"], d["name"])如果key不存在就报错,比如d["xx"]报错
  • 新增、修改数据:
代码语言:javascript
复制
d["id"] = 456如果"id"这个key不存在,就新增一个键值对如果"id"这个key已经存在,就修改"id"对应的value值
  • 特点:
代码语言:javascript
复制
字典的KEY一定不会重复的字典的Key要求不可变,可用数字、字符串、元组,不能是可变的列表
  • 常用方法:
代码语言:javascript
复制
len(dict) 字典的key/value对个数,也等于key的个数str(dict) 字典的字符串形式type(dict) 字典的类型,输出dictdict.clear() 清空字典的所有内容dict.get(key, default) 获取key的value内容,如果key不存在,返回默认值defaultkey in dict 判断key是否在dict的键中dict1.update(dict2) 将dict2的所有键值对,更新到dict1,也就是合并字典{x:x*x for x in range(10)} 字典推导式
  • 三种常用的字典遍历方法:
代码语言:javascript
复制
dict.items() 以列表返回可遍历的(键,值)元组数组,常用于for遍历dict.keys() 以列表返回字典所有的键dict.values() 以列表返回字典的所有的值

05

集合 set

集合set是一组无序并且没有重复元素的KEY集合;

set跟dict的key类似,区别在于set没有value;

key无序,所以set不支持数字索引和切片(dict也不支持);

  • 使用场景:

1、判断某个元素是否在集合set中(set比list速度快);

2、消除输入数据的重复元素;

  • 特点:

和dict一样,set的key只能是数字、字符串、元组等不可变对象,不能是列表等可变对象。

  • 创建方式:
代码语言:javascript
复制
创建一个空集合:s = set()创建一个初始化集合方法1:s = {1,2,2,3}创建一个初始化集合方法2:s = set([1,2,2,3]) 这里的参数可以是列表、元组、字符串创建空集合不能用s = {},因为这样创建了dict字典
  • 常用方法:
代码语言:javascript
复制
len(set) 集合的元素个数for x in set 集合的遍历set.add(key) 新增一个KEY,如果有重复会自动去重set.remove(key) 删除一个KEYset.clear() 清空setx in set 判断元素是否在set集合中s1 & s2或者s1.intersection(s2) 求两个集合的交集s1 | s2或者s1.union(s2) 求两个集合的并集s1 - s2或者s1.difference(s2) 求两个集合的差集s1.update(s2) 将s2的所有key更新到s1,会去除重复集合推导式:s = {x for x in 'abcd' if x not in 'bc'}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐享数据8090 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档