python3所支持的整数进制_Python3快速入门(三)——Python3标准数据类型

Python3快速入门(三)——Python3标准数据类型

一、Python3标准数据类型

Python3 中有六种标准数据类型:

A、Number(数字)

B、String(字符串)

C、List(列表)

D、Tuple(元组)

E、Set(集合)

F、Dictionary(字典)

Python3 的六种标准数据类型中,Number(数字)、String(字符串)、Tuple(元组)是不可变的,List(列表)、Dictionary(字典)、Set(集合)是可变的。

二、数字类型

1、数字类型

Python 数字数据类型用于存储数值。

数字数据类型是不允许改变的,如果改变数字数据类型的值,将重新分配内存空间。

Python中Number有四种类型:bool、int、float、complex。bool类型表示真假,值为True、False;int类型表示长整数;float表示浮点数;complex表示复数。

int (整数),只有一种整数类型 int。

bool (布尔),如 True。

float (浮点数),如 1.23、3E-2

complex (复数),如 1 + 2j、1.1 + 2.2j

2、数字类型转换

如果需要对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可。

bool(x):将x转换为一个bool值,非空为True,空为Fasle。

int(x) :将x转换为一个整数。

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

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

complex(x, y) :将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

#!/usr/bin/python3

a = 3.14

b = int(a)

print(b)

c = complex(a)

print(c)

d = complex(a,b)

print(d)

3、数字运算符

Python 解释器可以解析输入的一个表达式,输出表达式的值。

在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //。在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 // 。// 得到的并不一定是整数类型的数,结果与分母分子的数据类型有关系。

#!/usr/bin/python3

a = 10

b = 5

c= a + b

print(c)

c = a - b

print(c)

c = a * b

print(c)

c = a / b

print(c)

c = 2 ** a

print(c)

c = 10 % 3

print(c)

c = 10 // 3

print(c)

c = 10.0 // 3

print(c)

c = 10 // 3.0

print(c)

在交互模式中,最后被输出的表达式结果被赋值给变量_ 。

>>> tax = 13/100

>>> price = 100

>>> price * tax

13.0

>>> _

13.0

>>> price + _

113.0

>>> _

113.0

4、数学函数

abs(x):返回数字的绝对值

ceil(x):返回数字的向上取整整数

exp(x):返回e的x次幂,如math.exp(1) 返回2.718281828459045

fabs(x):返回数字的绝对值,如math.fabs(-10) 返回10.0

floor(x):返回数字的向下取整整数,如math.floor(4.9)返回 4

log(x):返回x的自然对数,如math.log(math.e)返回1.0,math.log(100,10)返回2.0

log10(x):返回以10为基数的x的对数,如math.log10(100)返回 2.0

max(x1,x2,...,xn):返回给定参数的最大值,参数可以为序列

min(x1,x2,...,xn):返回给定参数的最小值,参数可以为序列

modf(x):返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示

pow(x,y):x**y 运算后的值

round(x,[n]):返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

sqrt(x):返回数字x的平方根。

#!/usr/bin/python3

import math

c = abs(-10.9)

print(c)

c = math.ceil(4.1)

print(c)

c = math.exp(1)

print(c)

c = math.exp(3)

print(c)

c = math.fabs(-10.9)

print(c)

c = math.floor(4.9)

print(c)

c = math.log(math.e)

print(c) # 1.0

c = math.log(100,10)

print(c) # 2.0

c = math.log10(100)

print(c) # 2.0

c = max([1,4,2])

print(c)

c = min([1,4,3])

print(c)

c = math.modf(4.8)

print(c) # (0.7999999999999998, 4.0)

c = pow(10,2)

print(c)

c = round(3.1415,2)

print(c)

c = math.sqrt(3)

print(c)

5、随机函数

choice(seq):从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

randrange([start,] stop [,step]) :从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1

random():随机生成下一个实数,在[0,1)范围内。

shuffle(seq):将序列的所有元素随机排序

uniform(x,y):随机生成下一个实数,在[x,y]范围内。

#!/usr/bin/python3

import random

c = random.choice([1,2,3,4,5,6])

print(c)

c = random.randrange(0,100,2)

print(c)

c = random.random()

print(c)

list1 = [1,2,3,4,5]

random.shuffle(list1)

print(list1)

c = random.uniform(1,100)

print(c)

6、三角函数

acos(x):返回x的反余弦弧度值

asin(x):返回x的反正弦弧度值

atan(x):返回x的反正切弧度值

atan2(y,x):返回给定的 X 及 Y 坐标值的反正切值

cos(x):返回x的弧度的余弦值

hypot(x):返回欧几里德范数 sqrt(xx + yy)。

sin(x):返回的x弧度的正弦值

tan(x):返回x弧度的正切值。

degrees(x):将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

radians(x):将角度转换为弧度

#!/usr/bin/python3

import math

c = math.acos(0)

print(c)

c = math.acos(-1)

print(c)

c = math.acos(1)

print(c)

c = math.asin(0)

print(c)

c = math.asin(-1)

print(c)

c = math.asin(1)

print(c)

c = math.atan(0)

print(c)

c = math.atan(-1)

print(c)

c = math.atan(1)

print(c)

c = math.atan2(-0.5,-0.5)

print(c)

c = math.cos(math.pi)

print(c)

c = math.cos(0)

print(c)

c = math.cos(2*math.pi)

print(c)

c = math.hypot(3,2)

print(c)

c = math.sin(math.pi)

print(c)

c = math.sin(0)

print(c)

c = math.sin(math.pi / 2)

print(c)

c = math.tan(math.pi / 2)

print(c)

c = math.tan(math.pi / 4)

print(c)

c = math.tan(0)

print(c)

c = math.degrees(math.pi / 2)

print(c)

c = math.degrees(math.pi / 4)

print(c)

c = math.degrees(math.pi)

print(c)

c = math.radians(math.pi / 2)

print(c)

c = math.radians(math.pi / 4)

print(c)

c = math.radians(math.pi)

print(c)

7、数学常量

pi:数学常量 pi(圆周率,一般以π来表示)。

e:数学常量 e,e即自然常数(自然常数)。

#!/usr/bin/python3

import math

print(math.pi)

print(math.e)

8、进制转换

Python中,二进制、八进制、十六进制的表示如下:

二进制表示:0bxxxx,如0b0101

八进制表示:0oxxxx,如0o11

十六进制表示:0xxxxx,如0x1FFF

Python中不同进制数转换为二进制、八进制、十进制、十六进制的函数如下:

bin()、oct()、int()、hex()。

#!/usr/bin/python3

# 二进制表示

print(0b0101)

# 八进制表示

print(0o10)

# 十六进制表示

print(0xABC)

# 二进制转换

print(bin(1024))

# 八进制转换

print(oct(1024))

# 十六进制转换

print(hex(1024))

# 十进制转换

print(int(0b0101))

三、字符串类型

1、字符串

字符串是 Python 中最常用的数据类型,可以使用引号( ' ,"或""")来创建字符串,其中"""用于创建多行字符串。

Python不支持单字符类型,单字符在Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号来截取字符串。

#!/usr/bin/python3

a = 'Hello World!'

print(a[0])

print(a[1:5])

在需要在字符中使用特殊字符时,python用反斜杠()转义字符。

#!/usr/bin/python3

print('This is Python')

print("This's Python")

print("""

This is Go,

Python,

C++

"""

)

2、访问字符串

Python 不支持单字符类型,单字符在 Python 中作为一个字符串使用。Python 访问子字符串,可以使用方括号来截取字符串。

#!/usr/bin/python3

a = "Hello world"

print(a[0])

print(a[0:5])

print(a[-1])

使用索引访问字符串中字符时,如果使用负数索引,表示从字符串右侧开始进行索引,-1表示字符串右侧开始的第一个字符。

lang = "Java,C,C++,Go,Python"

print(lang[-6:]) # Python

print(lang[14:]) # Python

print(lang[11:13]) # Go

3、转义字符

\(在行尾):续行符

\:反斜杆符号

\’:单引号

\”:双引号

\a:响铃

\b:退格

\e:转义

\000:空

\n:换行

\v:纵向制表符

\t:横向制表符

\r:回车

\f:换页

\oyy:八进制数,yy代表字的字符

\xyy:十六进制数,yy代表的字符

\other:其它字符以普通格式还输出

4、字符串运算符

+:连接字符串

*:重复输出字符串

[]:通过索引获取字符串中字符

[:]:截取字符串的一部分,左闭右开

in:如果字符串中包含给定的字符,返回True

not in:如果字符串中不包含给定的字符,返回True

%:格式字符串

r/R:原始字符串,原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,字符串的字符不进行转义。

#!/usr/bin/python3

a = "Hello"

b = "Python3"

c = a + b

print(c)

c = 2 * a

print(c)

print(a[3])

print(a[1:4])

if "3" in b:

print("3")

print(r"Hello Go\n")

print("Hello Python3"[-1])

print("Hello Python3"[6:]) # Python3

print("Hello Python3"[:5]) # Hello

print("Hello Python3"[:-1]) # Hello Python

对字符串进行截取时,需要指定起始索引和结束索引,如果给定的结束索引超出了字符串的实际结束位置,会截取从开始索引到结束的字符串部分。如果不指定开始索引或结束索引,表示从第0个元素开始或是到最后一个元素结束。

5、字符串格式化

Python 支持格式化字符串的输出 ,基本用法是将一个值插入到一个有字符串格式符 %s 的字符串中。字符串格式化符号如下:

%c:格式化字符以及ASCII码

%s:格式化字符串

%d:格式化整数

%u:格式化无符号整数

%o:格式化无符号八进制数

%x:格式化无符号十六进制数

%X:格式化无符号十六进制数()大写

%f:格式化浮点数,可指定精度

%e:使用科学计数法格式化浮点数

%E:使用科学计数法格式化浮点数

%g:%f和%e的简写

%G:%f和%E的简写

%p:用十六进制数格式化变量的地址

#!/usr/bin/python3

print("姓名:%s 年龄:%d 岁" % ('×××', 20))

6、字符串操作函数

str.capitalize():将字符串的第一个字母变成大写,其他字母变小写。

center(width[, fillchar]):返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

str.count(sub, start= 0,end=len(string)):统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

str.encode(encoding='UTF-8',errors='strict'):以指定的编码格式编码字符串,errors参数可以指定不同的错误处理方案。

bytes.decode(encoding="utf-8", errors="strict"):指定的编码格式解码 bytes 对象。默认编码为 'utf-8'。

str.endswith(suffix[, start[, end]]):用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

expandtabs(tabsize=8):把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。

find(str, beg=0, end=len(string)):检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。

index(str, beg=0, end=len(string)):如果包含子字符串返回开始的索引值,否则抛出异常。

isalnum():检测字符串是否由字母和数字组成。如果 字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False。

isalpha():检测字符串是否只由字母组成。如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False。

isdigit():检测字符串是否只由数字组成。如果字符串只包含数字则返回 True ,否则返回 False。

islower():检测字符串是否由小写字母组成。如果字符串中包含至少一个区分大小写的字符,并且所有区分大小写的字符都是小写,则返回 True,否则返回 False。

isnumeric():检测字符串是否只由数字组成,只针对unicode对象。如果字符串中只包含数字字符,则返回 True,否则返回 False。

isspace():检测字符串是否只由空白字符组成。如果字符串中只包含空格,则返回 True,否则返回 False。

istitle():检测字符串中所有的单词拼写首字母是否为大写,且其它字母为小写。如果字符串中所有的单词拼写首字母是否为大写,且其它字母为小写则返回 True,否则返回 False。

isupper():检测字符串中所有的字母是否都为大写。如果字符串中包含至少一个区分大小写的字符,并且所有区分大小写的字符都是大写,则返回 True,否则返回 False。

join(sequence):用于将序列中的元素以指定的字符连接生成一个新的字符串。返回通过指定字符连接序列中元素后生成的新字符串。

len(str):返回对象(字符、列表、元组等)长度或项目个数。

ljust(width[, fillchar]):返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

lower():转换字符串中所有大写字符为小写。将字符串中所有大写字符转换为小写后返回。

lstrip([chars]):用于截掉字符串左边的空格或指定字符。返回截掉字符串左边的空格或指定字符后生成的新字符串。

str.maketrans(intab, outtab):用于创建字符映射的转换表,第一个参数是字符串,表示需要转换的字符,第二个参数是字符串表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。

translate(table[, delete]):根据参数table转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。table翻译表是通过 maketrans() 方法转换而来,delete是字符串中要过滤的字符列表。返回翻译后的字符串,若给出了delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射 。

max(str):返回字符串中最大的字母。

min(str):返回字符串中最小的字母。

replace(old, new[, max]):把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

rfind(str, beg=0 end=len(string)):返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

rindex(str, beg=0 end=len(string)):返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,可以指定可选参数[beg:end]设置查找的区间。

rjust(width[, fillchar]):返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

rstrip([chars]):删除 string 字符串末尾的指定字符(默认为空格)

split(str="", num=string.count(str)):指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num+1 个子字符串。返回分割后的字符串列表。

splitlines([keepends]): 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

startswith(substr, beg=0,end=len(string)):用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。如果检测到字符串则返回True,否则返回False。

strip([chars]):用于移除字符串头尾指定的字符(默认为空格)或字符序列。

返回移除字符串头尾指定的字符序列生成的新字符串。

swapcase():用于对字符串的大小写字母进行转换。返回大小写字母转换后生成的新字符串。

title():返回"标题化"的字符串,所有单词的首个字母转化为大写,其余字母均为小写。如果单词的第一个字符为非字母,非字母后的第一个字母将转换为大写字母。

upper():将字符串中的小写字母转为大写字母。返回小写字母转为大写字母的字符串。

zfill(width):返回指定长度的字符串,原字符串右对齐,前面填充0。返回指定长度的字符串。

isdecimal():检查字符串是否只包含十进制字符,只存在于unicode对象。如果字符串是否只包含十进制字符返回True,否则返回False。

ord(c):获取字符c的ASCII码编码值

#!/usr/bin/python3

a = str.capitalize("hello Python")

print(a) # Hello python

a = "Hello Python3"

print(a.center(40, "-")) # ------------Hello Python3--------------

print(a.count("l")) # 2

a_utf8 = a.encode("UTF-8")

print(a_utf8)

print(a_utf8.decode("UTF-8"))

a = "hello.bin"

if a.endswith("bin"):

print("The file is bin file")

a = "\tHello Python3"

print(a.expandtabs(4))

print(a[a.find("Hello"):])

print(a.isalnum())

a = "Hello python3"

print(a.istitle()) # False

a = "Hello Python3"

print(a.istitle()) # True

s1 = ","

s2 = ""

seq = ["C++","Go","Java","Python"]

print(s1.join(seq)) # C++,Go,Java,Python

print(s2.join(seq)) # C++GoJavaPython

print(a.ljust(40,"-"))

print(a.lower())

a = "***Hello Python3"

print(a.lstrip("*"))

intab = "aeiou"

outtab = "12345"

c = "Hello Python3"

trantab = str.maketrans(intab, outtab)

print(c.translate(trantab))

c = "hello world"

trantab = str.maketrans('abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

print(c.translate(trantab))

c = "Hello Python3"

print(c.split(" "))

四、列表

1、列表简介

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字作为索引,第一个索引是0,第二个索引是1,依此类推。

Python常见的序列是字符串、列表和元组。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的Python数据类型,可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

2、列表访问

列表元素的访问可以使用索引进行,可以指定开始索引和结束索引进行切片操作。

#!/usr/bin/python3

list1 = ['Python3', True, 2019, 3.14];

list2 = [1, 2, 3, 4, 5, 6, 7];

print(list1[0])

print(list2[1:5])

对列表进行解包时,接收对象个数必须与列表的元素个数相匹配。

#!/usr/bin/python3

a, b, c = [1, "Hello Python", True] # a, b = [1,"Hello Python", True]错误

print(a, b, c)

3、更新列表

#!/usr/bin/python3

list1 = ['Go', 'Python3', "Java", 2019]

print(list1[3])

list1[3] = "C++"

print(list1[3])

4、删除列表元素

del 语句可以用于删除列表的的元素。

#!/usr/bin/python3

list1 = ['Go', 'Python3', "Java", 2019]

print(list1[3])

del list1[3]

print(list1)

5、列表运算符

+:组合,将两个列表进行组合后生成新的列表

*:重复,将列表的元素重复多次,生成新的列表

x in list:判断x是否在列表中,如果是返回True,否则返回False。

for x in list: print(x, end=" "):对列表进行迭代

#!/usr/bin/python3

list1 = ["C++", "Java", "Python", "Go"]

list2 = ["Lua", "NodeJS"]

print(list1 + list2)

print(2 * list1)

if "C++" in list1:

print("C++")

for x in list1:

print(x)

6、列表操作函数

len(list)

列表元素个数

max(list)

返回列表元素最大值

min(list)

返回列表元素最小值

list(seq)

将序列转换为列表

#! /usr/bin/python3

list1 = [1, 1, 2, 3, 4, 5, 8]

print(len(list1))

print(max(list1))

print(min(list1))

list2 = list((1, 2, 3, 4, 5))

print(list2)

7、列表方法

list.append(obj)

在列表末尾添加新的对象

list.count(obj)

统计某个元素在列表内出现的次数

list.extend(seq)

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

list.index(obj)

从列表中找出某个值第一个匹配项的索引位置

list.×××ert(index,obj)

在列表的index位置插入对象obj

list.pop(index=-1)

移除列表中位置为index(默认为最后一个)的元素,并返回元素的值

list.remove(obj)

移除列表中某个值的第一个匹配项

list.reverse()

反向列表中的元素

list.sort(key=None,reverse=False)

对列表进行排序,较函数指定的比较函数。

key 用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序;reverse 指定排序规则,reverse = True 降序, reverse = False 升序(默认)。

list.clear()

清空列表

list.copy()

复制列表

#! /usr/bin/python3

list1 = [1, 3.14, True]

list1.append("Python")

print(list1)

print(list1.count(1)) # True也会被统计为1

list1.extend(["C++", "Java", "Go"])

print(list1)

print(list1.index(1))

list1.×××ert(1, "Hello")

print(list1)

print(list1.pop(1))

list1.remove(True) # 删除第一个1

print(list1)

list1.reverse()

print(list1)

list1 = [1, 13, 5, 9]

list2 = list1.copy()

print(list2)

list1.clear()

print(list1)

list1 = [(2, 2), (3, 4), (4, 1), (1, 3)]

def take(elem):

return elem[1]

list1.sort(key=take)

print(list1)

# [(4, 1), (2, 2), (1, 3), (3, 4)]

五、元组

1、元组

元组使用小括号创建,只需要在括号中添加元素,并使用逗号隔开,元素可以是不同类型。

#! /usr/bin/python3

tup1 = ("Go", "Python", 1, 3.14, True) # 元组

tup2 = 1, 2, 3.14, "Python" # 元组

tup3 = () # 空元组

tup4 = (1,) # 一个元素的元组

tup5 = (1) # 整型数字

print(type(tup1))

print(type(tup2))

print(type(tup3))

print(type(tup4))

print(type(tup5))

2、访问元组

元组可以使用下标索引来访问元组中的值。

#! /usr/bin/python3

tup1 = ('Go', 'C++', True, 3.14)

tup2 = (1, 2, 3, 4, 5, 6, 7)

print(tup1[1])

print(tup2[1:5])

对元组进行解包时,接收对象个数必须与元组的元素个数相匹配。

#!/usr/bin/python3

a, b, c = (1, "Hello Python", True) # a, b = (1,"Hello Python", True) 错误

print(a, b, c)

3、修改元组

元组中的元素值是不允许修改的,但可以对元组进行连接组合。

#! /usr/bin/python3

tup1 = (1, 2)

tup2 = ('Go', 'Python')

# tup1[0] = 100 # 不能修改

tup3 = tup1 + tup2

print(tup3)

tuple元素不可变有一种特殊情况,当元素是可变对象时,对象内部属性是可以修改的。tuple的不可变限制只是在一个纬度上:元素的类型。tuple的元素所保存的内容(数值或内存地址)是不允许修改的,但地址映射的对象自身是可以修改的。

#!/usr/bin/python3

tup1 = ("Go", "Python", [1,2,True])

tup1[2][2] = False

print(tup1)

4、删除元组

元组中的元素值不允许删除,但可以使用del语句来删除整个元组。

#! /usr/bin/python3

tup2 = ('Go', 'Python')

print(tup2)

del tup2

5、元组运算符

+:连接两个元组,生成新的元组。

*:重复多次元组

x in tuple:判断x是否在元组中,如果存在返回True,否则返回False。

for x in tuple:迭代元组

#!/usr/bin/python3

tup1 = ("Go", "Python", [1, 2, True])

tup2 = (1, 2, 3)

print(tup1 + tup2)

print(2 * tup1)

if "Python" in tup1:

print("Python")

for x in tup1:

print(x)

6、元组内置函数

len(tuple)

计算元组元素的个数

max(tuple)

返回元组中元素的最大值

min(tuple)

返回元组中元素的最小值

tuple(seq)

将序列转换为元组

#! /usr/bin/python3

tup1 = (1, 2, 3)

print(len(tup1))

print(max(tup1))

print(min(tup1))

tup2 = tuple([1, "Go", 3.14, True])

print(tup2)

六、字典

1、字典

字典是一种无序的数据结构,可存储任意类型对象。字典的每个键值(key:value)对用冒号(:)分割,键值对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必唯一。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

字典值可以是标准的对象,也可以是用户定义的,但键不行。

字典中不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。键必须不可变,可以用数字、字符串或元组作为键,列表不可以。

2、访问字典

#!/usr/bin/python3

dict1 = {'Name': 'Lee', 'Age': 27}

print(dict1['Name'])

print(dict1['Age'])

字典是无序的,因此不能使用索引访问字典的元素,可以使用key访问字典的相应key的值,如果用字典里没有的键访问数据,会输出错误。

3、修改字典

向字典添加新内容的方法是增加新的键/值对,修改或删除已有键值对。

#!/usr/bin/python3

dict1 = {'Name': 'Lee', 'Age': 17}

print(dict1['Name'])

print(dict1['Age'])

dict1['Name'] = "Bauer"

dict1['Age'] = 30

dict1['School'] = "Python School"

print(dict1['Name'])

print(dict1['Age'])

print(dict1['School'])

4、删除字典元素

可以删除字典元素,可以清空字典,也可以删除字典。

#!/usr/bin/python3

dict1 = {'Name': 'Lee', 'Age': 17}

print(dict1)

del dict1["Age"]

dict1.clear()

del dict1

5、字典内置函数

len(dict)

计算字典元素个数,即键的总数。

str(dict)

输出字典

6、字典内置方法

dict.clear()

删除字典内所有元素

dict.copy()

返回一个字典的浅复制

dict.fromkeys(seq[,value])

以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值创建一个新字典。

dict.get(key[,default=None])

返回字典中指定键的值,如果值不存在,返回default值。

key in dict

如果key存在字典中,返回True,否则返回False。

dict.items()

以列表返回可遍历的(键, 值) 元组数组

dict.keys()

返回一个迭代器,可以使用list转换为列表

dict.setdefault(key,default=None)

修改key的值为default,如果键不存在于字典中,将会添加键并将值设为default。

dict.update(dict2)

将字典dict2的键值对更新到dict字典里

dict.values()

返回字典中所有值的迭代器,可以使用list转换为列表

dict.pop(key[,default])

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

dict.popitem()

随机返回并删除字典中的一对键和值(一般删除末尾对)。

七、集合

1、集合

集合(set)是一个无序的无重复元素序列,可以使用大括号 { } 或者 set() 函数创建集合。创建一个空集合必须用 set() 而不是 { },{ } 用来创建一个空字典。

2、集合运算符

集合是无序的序列,因此不能使用索引对集合元素进行访问。集合的运算包括差、并、交。

#!/usr/bin/python3

fruit = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}

print(fruit)

print("apple" in fruit)

a = set("Hello")

b = set("world")

print(a)

print(b)

print(a - b)

print(a | b)

print(a & b)

print(a ^ b)

c = {x for x in 'abracadabra' if x not in 'abc'}

print(c)

3、集合内置函数

add(x):将元素 x 添加到集合 中,如果元素已存在,则不进行任何操作。

update(x):将x添加到集合中,且x参数可以是列表,元组,字典等。

remove(x):将元素 x 从集合中移除,如果元素不存在,则会发生错误。

discard(x):将元素 x 从集合中移除,如果元素不存在,不会发生错误。

pop():随机删除集合中的一个元素

len(s):计算集合 s 元素个数。

clear():清空集合。

x in s:判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。

copy():返回一个集合的拷贝

set.difference(set):返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。

set.difference_update(set):在原始集合上移除指定集合中存在的元素,没有返回值。

set.intersection(set1, set2 ... etc):返回两个或更多集合中都包含的元素,即交集。

set.intersection_update(set1, set2 ... etc):在原始的集合上移除不重叠的元素,没有返回值。

set.isdisjoint(set):判断两个集合中是否包含相同的元素,如果没有返回 True,否则返回 False。

set.issubset(set):判断集合是否是指定集合的子集,如果是则返回 True,否则返回 False。

set.issuperset(set):判断指定集合是否是集合的子集,如果是则返回 True,否则返回 False。

set.symmetric_difference(set):将两个集合中不重复的元素作为一个集合返回。

set.symmetric_difference_update(set):移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。无返回值。

set.union(set1, set2...):返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

#!/usr/bin/python3

set1 = {"Go", "C++", "Java", "Python3"}

set1.add("C")

print(set1)

set1.add("Go")

print(set1)

set1.update({"NodeJS", "Lua"})

print(set1)

set1.update([1, 2, 3], [4, 5])

print(set1)

set1 = {"C++", "C", "Go"}

set2 = {"Python", "Lua", "NodeJS"}

set3 = set1.union(set2)

print(set3)

print(set1.intersection(set3))

print(set1.issubset(set3))

print(set3.issuperset(set1))

print(set3.difference(set1))

print(set1.symmetric_difference(set3))

set1.symmetric_difference_update(set3)

set1.difference_update(set3)

print(set1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python解图片迷宫生成路径_用Python代码来解图片迷宫的方法整理

译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用python对图片的处理以及广度优先(BFS)算法等。问题by Whymarrh:当给定上面那样一张JPEG图片,如何…

web获取多行mysql结果_mysql中的多行查询结果合并成一个

SELECT GROUP_CONCAT(md.data1) FROM DATA md,contacts cc WHERE md.conskeycc.id AND md.mimetype_id 5 AND md.user_id17:利用函数:group_concat(),实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行,如 |1…

学习Vue2.x

ref属性 (1)被用来给元素或子组件注册应用信息(id的替代者) (2)应用在html标签上获取的是真实DOM元素,或应用在组件标签上是组件实例对象(VC) (3)…

信号模型噪声服从零均值高斯分布_非高斯噪声下基于分数低阶循环谱的调制识别方法...

1 引言当前,绝大多数非高斯噪声的建模形式都为Alpha稳定分布噪声。首先,Alpha稳定分布符合中心极限定理,在理论上适合应用于实际场景中的噪声建模;其次,Alpha稳定分布由于其参数的可变性,包含高斯分布、柯西…

mysql 时间绝对值_datetime和timestamp--时间戳是绝对值,日期是相对值

遇到的问题:系统时间与数据库时间不一致,系统时间是8:20,存到数据库里是0:20。第一直觉是时区不同导致的。先看一段代码:Java代码public static void main(String[] args) {//System.out.println(TimeZone.getDefault());SimpleDa…

python网络编程自学_五分钟搞定Python网络编程实现TCP和UDP连接

Python网络编程实现TCP和UDP连接, 使用socket模块, 所有代码在python3下测试通过。实现TCP#!/usr/bin/env python3# -*- coding: utf-8 -*-import socket# 创建一个socket:s socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 建立连接:s.connect((www.baidu.co…

java自定义线程_Java自定义线程池详解

自定义线程池的核心:ThreadPoolExecutor为了更好的控制多线程,JDK提供了一套线程框架Executor,帮助开发人员有效的进行线程控制,其中在java.util.concurrent包下,是JDK并发包的核心,比如我们熟知的Executor…

java sql 递归查询_sql server实现递归查询的方法示例

本文实例讲述了sql server实现递归查询的方法示例。分享给大家供大家参考,具体如下:有时候面对树结构的数据时需要进行递归查询,网上找了一番,参考了各位大神的文章,发现蛮简单的,当做个小笔记方便以后使用sql server 通过CTE来支持递归查询,这对查询树形…

java 垃圾回收 null_java方法中把对象置null,到底能不能加速垃圾回收

今天逛脉脉,看见匿名区有人说java中把对做置null,这种做法很菜,不能加速垃圾回收,但是我看到就觉得呵呵了,我是觉得可以加速置null对象回收的。测试的过程中,费劲的是要指定一个合理的测试堆大小&#xff0…

零基础学java web开发pdf_新手学Java Web开发.pdf

作 者 :杨磊等编著出版发行 : 北京:北京希望电子出版社 , 2010.01ISBN号 :978-7-89498-988-8页 数 : 480丛书名 : 新手学编程系列原书定价 : 49.80主题词 : 计算机编程软件,JAVA WEB中图法分类号 : TP3 ( 工业技术->…

es 映射 mysql_ElasticSearch系列02:ES基础概念详解

1、ES 简介1)定义ES是elaticsearch简写, Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。Elasticsearch也使用Java开…

java 跨域上传_java后台图片跨域上传图片 文件

发送方ResponseBodyRequestMapping(value"/imgUpLoadNewOneKuaYu")public String imgUpLoadNewOneKuaYu(HttpServletRequest request) throwsIOException {String urlStr "http://localhost:9080/no-js/admin/upload";Map textMap new HashMap();Multipar…

java ajax 导入excel_Ajax asp.net 导入Excel

$("#btnUploadExcelSave").click(function () {var fileObj document.getElementById("file").files[0]; // js 获取文件对象var FileController "../FileHandler.ashx?type3"; // 接收上传文件的后台地址// FormData 对象var form new Form…

java 外卖订餐系统_java外卖订餐系统小项目

本文实例为大家分享了java外卖订餐系统的具体代码,供大家参考,具体内容如下执行结果:通过选择功能序号,执行响应的功能:代码实现:package 外卖订餐系统;/** 代码优点,使用 循环:* 显…

mysql 性能问题_mysql性能问题

性能优化的目的是什么呢?(合理利用可利用的资源)性能优化的方向:硬件方面:CPU、内存、IO、网络、硬盘、显卡软件方面:mysql这个软件内部优化,比如sql、算法,一些配置项目方面:需求设计、架构优化…

java 字符串包含某个字符_java中判断字符串中是否包含某个特定字符串的方法有哪些...

判断一个字符串是否包含某个子串的n种方法:1、startsWith()方法2、contains()方法3、indexOf方法startsWith()方法这个方法有两个变体,用于检测字符串是否以指定的前缀开始。此方法定义的语法如下:public boolean startsWith(String prefix, int toffset…

java socket 判断是否断开_Linux Socket:如何在客户端程序中检测断开的网络?

仅在调用write()函数时才能检测到未插入的以太网电缆 . 这是因为tcp堆栈的tcp重传没有你的意识 . 这是解决方案 .即使您已经为应用程序套接字设置了keepalive选项,但是如果您的应用程序一直在套接字上写入,您无法及时检测到套接字的死连接状态 . 那是因为…

java backbone_在Backbone.js中发出POST请求

我有一个RESTful服务器,它接受url编码的参数 .就我而言,发帖请求https://我的服务器:8443 / test / auth将请求标头设置为Content-Type:application / x-www-form-urlencoded并传递参数username myusername password …

java的方法调用中分不清_java中不太清晰的知识点

一、什么包需要导入,什么包不需要导入1.java.lang包的内容是自动导入的,不需要手动导入,其它必须手动导入。2.java.io.OutputStreamWrite已经是完整的类,无需再导入,而printWrite这个类,并不是调用完整的类…

纪念品分组java_纪念品分组 ——易懂、简介、技巧(Java代码)

我的思路:1、先排序2、两层循环嵌套,外面的一层从数组末尾开始,里面一层从头开始遍历,首先满足的条件就是这两个数都不能是 NULL 的,并且两个物品的价值加起来不大于最大价值,都满足之后就把两个物品都赋值…