前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >@陈同学的专属Python教程之常见数据结构

@陈同学的专属Python教程之常见数据结构

作者头像
酒馆丁老师
修改2020-12-13 17:18:09
1.5K0
修改2020-12-13 17:18:09
举报
欢迎关注,一起搞IT
欢迎关注,一起搞IT

数字

  • 转化为数字
代码语言:javascript
复制
int(x) 将x转换为一个整数。

float(x) 将x转换到一个浮点数。

complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。

complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
代码语言:javascript
复制
# -*- coding: utf-8 -*-
data = '123'
print(int(data)+4)
  • 四舍五入
代码语言:javascript
复制
#round() 方法返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入)。
#round( x [, n]  )
#x -- 数字表达式。
#n -- 表示从小数点位数,其中 x 需要四舍五入,默认值为 0。
print ("round(80.264, 2) : ", round(80.264, 2))
  • 向上取值
代码语言:javascript
复制
ceil(x)    返回数字的上入整数,如math.ceil(4.1) 返回 5
  • 向下取值
代码语言:javascript
复制
floor(x)    返回数字的下舍整数,如math.floor(4.9)返回 4
  • 最大值 最小值
代码语言:javascript
复制
max(x1, x2,...)    返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)    返回给定参数的最小值,参数可以为序列。
  • 随机
代码语言:javascript
复制
random()    随机生成下一个实数,它在[0,1)范围内。


假设随机数范围:1000-9999

# -*- coding: utf-8 -*-
import random
import math
# data = '123'
# print(int(data)+4)


code = math.floor(random.random()*9000)+1000
print(code)
# [0,1)   => [0,9000)   =>最终想要的 [1000,9999]

注意:random()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

  • 将序列的所有元素随机排序
代码语言:javascript
复制
shuffle(lst)    将序列的所有元素随机排序

#!/usr/bin/python3
import random

list = [20, 16, 10, 5];
random.shuffle(list)
print ("随机排序列表 : ",  list)

random.shuffle(list)
print ("随机排序列表 : ",  list)
  • choice 从序列的元素中随机挑选一个元素
代码语言:javascript
复制
从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

#choice  四位随机数
print(random.choice(range(1000,10000)))
  • 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
代码语言:javascript
复制
random.randrange ([start,] stop [,step])

start -- 指定范围内的开始值,包含在范围内。
stop -- 指定范围内的结束值,不包含在范围内。
step -- 指定递增基数。

random.randrange (1000,10000, 1)
  • 特殊常量 pi 与e
代码语言:javascript
复制
print(math.pi)
print(math.e)

Python 字符串

  • 访问字符串中的值,按下标值取
代码语言:javascript
复制
var1 = 'Hello World!'

print(var1[1])   取第二位
print(var1[1:])  取第二位到结尾
print(var1[1:5]) 取第二位值第五位
print(var1[:5])  取第五位前面的所有
  • 输出转义字符
代码语言:javascript
复制
print("\"")
print('\'')
print("'")
print('"')
print('\n')
  • 字符串运算符
代码语言:javascript
复制
a = "hello"
b = 'world'
print(a + b)
print(a*2)

if 'he' in a:
    print("he存在a中")
  • 所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符
代码语言:javascript
复制
print(r'\n')    // 转义字符不被转义
print(b'aaa')   // 字节编码
u'input\n' # unicode编码字符,python3默认字符串编码方式。


f/format():格式化操作   py3.6+
name = 'Runoob'
f'Hello {name}'  # 替换变量

age = 19
print("年龄={:}".format(age))
  • 格式化输出
代码语言:javascript
复制
#!/usr/bin/python3

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
  • Python三引号
代码语言:javascript
复制
#!/usr/bin/python3

para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
  • 将字符串的第一个字符转换为大写
代码语言:javascript
复制
#!/usr/bin/python3

str = "this is string example from runoob....wow!!!"

print ("str.capitalize() : ", str.capitalize())
  • count 计算出现的次数
代码语言:javascript
复制
count(str, beg= 0,end=len(string))


返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

#!/usr/bin/python3

str="www.runoob.com"
sub='o'
print ("str.count('o') : ", str.count(sub))

sub='run'
print ("str.count('run', 0, 10) : ", str.count(sub,0,10))
  • 返回索引值
代码语言:javascript
复制
index(str, beg=0, end=len(string))

a = "hello"
print(a.index('o'))
  • join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
代码语言:javascript
复制
#!/usr/bin/python3

s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))
  • lstrip 截掉字符串左边的空格或指定字符。
代码语言:javascript
复制
a = "    hello"
b = 'world'
print(a.index('o'))
print(a.lstrip())
print(b.lstrip('wo'))
  • rstrip 截掉字符串右边的空格或指定字符。
代码语言:javascript
复制
a = "    hello"
b = 'world'
print(a.index('o'))

print(a.rstrip())
print(b.rstrip('d'))
  • 字符串替换
代码语言:javascript
复制
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

str.replace(old, new[, max])

old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次

#!/usr/bin/python3

str = "www.w3cschool.cc"
print ("菜鸟教程旧地址:", str)
print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com"))

str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))
  • 转换字符串中的小写字母为大写
代码语言:javascript
复制
#!/usr/bin/python3

str = "this is string example from runoob....wow!!!";

print ("str.upper() : ", str.upper())
  • 转换字符串中的大写字母为小写
代码语言:javascript
复制
#!/usr/bin/python3

str = "Runoob EXAMPLE....WOW!!!"

print( str.lower()

list 列表

数组,存放多个数据的,一队,一列一组,支持n维数组

  • 基本写法
代码语言:javascript
复制
#!/usr/bin/python3

list1 = ['Google', 'Runoob', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];

print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
  • 更新列表
代码语言:javascript
复制
对某个索引的值进行重新赋值
#!/usr/bin/python3

list = ['Google', 'Runoob', 1997, 2000]

print ("第三个元素为 : ", list[2])
list[2] = 2001
print ("更新后的第三个元素为 : ", list[2])
  • del 删除列表的的元素
代码语言:javascript
复制
#!/usr/bin/python3

list = ['Google', 'Runoob', 1997, 2000]

print ("原始列表 : ", list)
del list[2]
print ("删除第三个元素 : ", list)
  • Python列表脚本操作符
代码语言:javascript
复制
[1, 2, 3] + [4, 5, 6]    =>    [1, 2, 3, 4, 5, 6]  组合
['Hi!'] * 4     =>['Hi!', 'Hi!', 'Hi!', 'Hi!'] 重复
3 in [1, 2, 3]=>    True    元素是否存在于列表中
for x in [1, 2, 3]: print(x, end=" ")    =>1 2 3 迭代
  • 列表元素个数
代码语言:javascript
复制
len(list)
  • 将元组转换为列表
代码语言:javascript
复制
list(seq)
  • 在列表末尾添加新的对象
代码语言:javascript
复制
list.append(obj)

重点在末尾添加

  • 统计某个元素在列表中出现的次数
代码语言:javascript
复制
list.count(obj)
  • 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
代码语言:javascript
复制
#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao']
list2=list(range(5)) # 创建 0-4 的列表
list1.extend(list2)  # 扩展列表
print ("扩展后的列表:", list1)
  • pop
代码语言:javascript
复制
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

类似于出栈

#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao']
list1.pop()
print ("列表现在为 : ", list1)
list1.pop(1)
print ("列表现在为 : ", list1)
  • 函数用于移除列表中某个值的第一个匹配项。
代码语言:javascript
复制
#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.remove('Taobao')
print ("列表现在为 : ", list1)
list1.remove('Baidu')
print ("列表现在为 : ", list1)
  • reverse() 函数用于反向列表中元素
代码语言:javascript
复制
#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.reverse()
print ("列表反转后: ", list1)

元组

Python 的元组与列表类似,不同之处在于元组的元素不能修改。 业务需求,某变量 不让更改的话,可以定义为元组

字典

  • 字典的定义

字典是另一种可变容器模型,且可存储任意类型对象。 键值对

代码语言:javascript
复制
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

#!/usr/bin/python3

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
  • 删除字典
代码语言:javascript
复制
#!/usr/bin/python3

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}

del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典

print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住, 2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

  • 字典遍历 键和值
代码语言:javascript
复制
person = {
    'name':'zhangsan',
    'gender':'female',
    'age':18
}
# 判断键是否存在

if 'address' in person:
    print(person['address'])
else:
    print(' 键address 不存在')

## 循环
dict = {'Name': 'Runoob', 'Age': 7}
print("Value : %s" % dict.items())
for var in dict.items():
    print(var)

for var in dict.keys():
    print(dict[var])
for var in dict.values():
    print(var)

集合

  • 集合定义

集合(set)是一个无序的不重复元素序列。 场景:用于过滤重复保证一组里面唯一。

代码语言:javascript
复制
list = [1,2,1,2,2,3]

#空的集合
set_empty = set()

#有内容的集合

set_content = {1,2,3,4}
print(set_content)

dump_set = {1,1,1,2,2,2,3}

print(dump_set)
  • 计算个数
代码语言:javascript
复制
len(set)
  • 添加
代码语言:javascript
复制
s.add(x)
  • 删除
代码语言:javascript
复制
s.remove( x )
  • 清空
代码语言:javascript
复制
s.clear()

END

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 丁老师的技术随笔 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数字
  • Python 字符串
  • list 列表
  • 元组
  • 字典
  • 集合
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档