【语法02】Python数据类型

数字(Number)

# 使用del语句删除一些数字对象的引用
# del var1[,var2[,var3[....,varN]]]]

# 通过使用del语句删除单个或多个对象的引用
# del var 
# del var_a, var_b

#Python 支持三种不同的数值类型:
#整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
#浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
#复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

#十六进制和八进制代表整数:
number = 0xA0F #十六进制
print(number)

number = 0o37 #八进制
print(number)

#Python支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
2575
31
#Python数字类型转换

# int(x)将x转换为一个整数
# float(x)将x转换为一个浮点数
# complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
# complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

a = complex(3)
print(a)

a = complex(4,5)
print(a)
(3+0j)
(4+5j)
# Python数字运算
print(17 / 3)
print(17 // 3)

# //得到的不一定是整数类型的数,它与分母分子的数据类型有关系
print(7 / 2)
print(7 // 2)
print(7.0 // 2)
print(7 // 2.0)

#不同类型的数混合运算时会将整数转换为浮点数:
print(3 * 3.75 / 1.5)
5.666666666666667
5
3.5
3
3.0
3.0
7.5
# 在交互模式中,最后被输出的表达式结果被赋值给变量 _ 。
'''
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
'''
#数学函数

import math

print(abs(-2.5))

print(math.ceil(2.5)) # 返回数字的上入整数,如math.ceil(4.1) 返回 5
print(math.ceil(-2.5))

print(math.exp(1)) # 返回e的x次幂(ex)

print(math.fabs(-2)) # 返回数字的绝对值

print(math.floor(2.5)) # 返回数字的下舍整数

print(math.log(100,10)) # 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
print(math.log(2))# ln()

print(math.log10(1000))

print(max(2,3,5))

print(min(2,3,5))

print(math.modf(3.75))# 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
print(math.modf(-3.75))

print(pow(2,3.7))

print(round(3.756,2)) #返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。
print(round(4.522222,1))

print(math.sqrt(2))
2.5
3
-2
2.718281828459045
2.0
2
2.0
0.6931471805599453
3.0
5
2
(0.75, 3.0)
(-0.75, -3.0)
12.99603834169977
3.76
4.5
1.4142135623730951
# 随机数函数

import random

print(random.choice(range(10)))#在序列的元素中随机挑选一个元素
a = [1,2,3,'Ecust',True]
print(random.choice(a))

print(random.randrange(1,100,2)) # randrange ([start,] stop [,step])从指定范围内,按指定基数递增的集合中获取一个随机数

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

random.seed(1) #改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

print(a)
random.shuffle(a)# 将序列的所有元素随机排序
print(a)

print(random.uniform(2,5))# 随机生成下一个实数,它在[x,y]范围内
7
Ecust
83
0.37961522332372777
[1, 2, 3, 'Ecust', True]
[3, 'Ecust', True, 1, 2]
3.486305261275823
# 三角函数

import math

print(math.acos(0))#返回x的反余弦弧度值。
print(math.asin(0))
print(math.atan(1))
print(math.atan2(1,1))#返回给定的 X 及 Y 坐标值的反正切值。
print(math.cos(math.pi/2))#返回x的弧度的余弦值。
print(math.sin(math.pi/6))
print(math.tan(math.pi/4))
print(math.hypot(3,4))#返回欧几里德范数 sqrt(x*x + y*y)。
print(math.degrees(math.pi/2))#将弧度转换为角度
print(math.radians(60))#将角度转换为弧度
1.5707963267948966
0.0
0.7853981633974483
0.7853981633974483
6.123233995736766e-17
0.49999999999999994
0.9999999999999999
5.0
90.0
1.0471975511965976
# 数字常量
#math.pi,math.e

字符串

# Python访问字符串中的值
Var1 = 'Xuhuan'
Var2 = 'ECUST'
print(Var1[0])
print(Var2[2:5])
X
UST
#字符串更新
var = 'ECUST'
print(var + 'Xuhuan!')
ECUSTXuhuan
#转义字符
#在需要在字符中使用特殊字符时,python用反斜杠(\)转义字符。
'''
\(在行尾时)	续行符
\\	反斜杠符号
\'	单引号
\"	双引号
\a	响铃
\b	退格(Backspace)
\e	转义
\000	空
\n	换行
\v	纵向制表符
\t	横向制表符
\r	回车
\f	换页
\oyy	八进制数,yy代表的字符,例如:\o12代表换行
\xyy	十六进制数,yy代表的字符,例如:\x0a代表换行
\other	其它的字符以普通格式输出
'''
#字符串运算符

print("Xuhuan" + "ECUST!")#字符串连接

print("Xuhuan" * 2)#重复输出字符串

a = 'ECUST'
print(a[3])#通过索引获取字符串中字符
print(a[2:4])

if 's' in a:
    print('Yes-s')
elif 'S' in a:
    print('Yes-S')
else:
    print('No')
    
if 'u' not in a:
    print('No')
else:
    print('Yes')
    
print('xuhuan\n')
print(r'Xuhuan\n')#所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
XuhuanECUST!
XuhuanXuhuan
S
US
Yes-S
No
xuhuan

Xuhuan\n
#字符串格式化

print('I am %s , I have %d flowers'%('Xuhuan',20))

'''
      %c	 格式化字符及其ASCII码
      %s	 格式化字符串
      %d	 格式化整数
      %u	 格式化无符号整型
      %o	 格式化无符号八进制数
      %x	 格式化无符号十六进制数
      %X	 格式化无符号十六进制数(大写)
      %f	 格式化浮点数字,可指定小数点后的精度
      %e	 用科学计数法格式化浮点数
      %E	 作用同%e,用科学计数法格式化浮点数
      %g	 %f和%e的简写
      %G	 %f 和 %E 的简写
      %p	 用十六进制数格式化变量的地址
'''
I am Xuhuan , I have 20 flowers
#格式化操作符

'''
*	定义宽度或者小数点精度
-	用做左对齐
+	在正数前面显示加号( + )
<sp>	在正数前面显示空格
#	在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0	显示的数字前面填充'0'而不是默认的空格
%	'%%'输出一个单一的'%'
(var)	映射变量(字典参数)
m.n.	m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
'''
#三引号
#python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

para_str = '''这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
'''

print(para_str)
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( 	 )。
也可以使用换行符 [ 
 ]。
#unicode字符串
#在字符串前面加上前缀u

s = u'XuHuan'
print(s)
XuHuan
#Python 字符串自建函数

'''
1	capitalize()
将字符串的第一个字符转换为大写

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

3	count(str, beg= 0,end=len(string))
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

4	bytes.decode(encoding="utf-8", errors="strict")
Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

5	encode(encoding='UTF-8',errors='strict')
以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

6	endswith(suffix, beg=0, end=len(string))
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

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

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

9	index(str, beg=0, end=len(string))
跟find()方法一样,只不过如果str不在字符串中会报一个异常.

10	isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

11	isalpha()
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False

12	isdigit()
如果字符串只包含数字则返回 True 否则返回 False..

13	islower()
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

14	isnumeric()
如果字符串中只包含数字字符,则返回 True,否则返回 False

15	isspace()
如果字符串中只包含空白,则返回 True,否则返回 False.

16	istitle()
如果字符串是标题化的(见 title())则返回 True,否则返回 False

17	isupper()
如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

18	join(seq)
以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

19	len(string)
返回字符串长度

20	ljust(width[, fillchar])
返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

21	lower()
转换字符串中所有大写字符为小写.

22	lstrip()
截掉字符串左边的空格或指定字符。

23	maketrans()
创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

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

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

26	replace(old, new [, max])
把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

27	rfind(str, beg=0,end=len(string))
类似于 find()函数,不过是从右边开始查找.

28	rindex( str, beg=0, end=len(string))
类似于 index(),不过是从右边开始.

29	rjust(width,[, fillchar])
返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

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

31	split(str="", num=string.count(str))
num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串

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

33	startswith(str, beg=0,end=len(string))
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

34	strip([chars])
在字符串上执行 lstrip()和 rstrip()

35	swapcase()
将字符串中大写转换为小写,小写转换为大写

36	title()
返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

37	translate(table, deletechars="")
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中

38	upper()
转换字符串中的小写字母为大写

39	zfill (width)
返回长度为 width 的字符串,原字符串右对齐,前面填充0

40	isdecimal()
检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。
'''


'\n1\tcapitalize()\n将字符串的第一个字符转换为大写\n\n2\tcenter(width, fillchar)\n返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。\n\n3\tcount(str, beg= 0,end=len(string))\n返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数\n\n4\tbytes.decode(encoding="utf-8", errors="strict")\nPython3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。\n\n5\tencode(encoding=\'UTF-8\',errors=\'strict\')\n以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是\'ignore\'或者\'replace\'\n\n6\tendswith(suffix, beg=0, end=len(string))\n检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.\n\n7\texpandtabs(tabsize=8)\n把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。\n\n8\tfind(str, beg=0 end=len(string))\n检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1\n\n9\tindex(str, beg=0, end=len(string))\n跟find()方法一样,只不过如果str不在字符串中会报一个异常.\n\n10\tisalnum()\n如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False\n\n11\tisalpha()\n如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False\n\n12\tisdigit()\n如果字符串只包含数字则返回 True 否则返回 False..\n\n13\tislower()\n如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False\n\n14\tisnumeric()\n如果字符串中只包含数字字符,则返回 True,否则返回 False\n\n15\tisspace()\n如果字符串中只包含空白,则返回 True,否则返回 False.\n\n16\tistitle()\n如果字符串是标题化的(见 title())则返回 True,否则返回 False\n\n17\tisupper()\n如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False\n\n18\tjoin(seq)\n以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串\n\n19\tlen(string)\n返回字符串长度\n\n20\tljust(width[, fillchar])\n返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。\n\n21\tlower()\n转换字符串中所有大写字符为小写.\n\n22\tlstrip()\n截掉字符串左边的空格或指定字符。\n\n23\tmaketrans()\n创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。\n\n24\tmax(str)\n返回字符串 str 中最大的字母。\n\n25\tmin(str)\n返回字符串 str 中最小的字母。\n\n26\treplace(old, new [, max])\n把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。\n\n27\trfind(str, beg=0,end=len(string))\n类似于 find()函数,不过是从右边开始查找.\n\n28\trindex( str, beg=0, end=len(string))\n类似于 index(),不过是从右边开始.\n\n29\trjust(width,[, fillchar])\n返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串\n\n30\trstrip()\n删除字符串字符串末尾的空格.\n\n31\tsplit(str="", num=string.count(str))\nnum=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串\n\n32\tsplitlines([keepends])\n按照行(\'\r\', \'\r\n\', \n\')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。\n\n33\tstartswith(str, beg=0,end=len(string))\n检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。\n\n34\tstrip([chars])\n在字符串上执行 lstrip()和 rstrip()\n\n35\tswapcase()\n将字符串中大写转换为小写,小写转换为大写\n\n36\ttitle()\n返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())\n\n37\ttranslate(table, deletechars="")\n根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中\n\n38\tupper()\n转换字符串中的小写字母为大写\n\n39\tzfill (width)\n返回长度为 width 的字符串,原字符串右对齐,前面填充0\n\n40\tisdecimal()\n检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。\n'

列表

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

Python有6个序列的内置类型,但最常见的是列表和元组。

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

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

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

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

# 访问列表中的值
list1 = ['China','USA',True,123]
list2 = [1,2,3,4,5,6,7]

print(list1[0])
print(list2[1:5])
China
[2, 3, 4, 5]
#更新列表
list = ['China','USA',True,123]
print(list[2])
list[2] = 'JAPAN'
print(list[2])

#删除列表
list = ['China','USA',True,123]
print(list)
del list[2]
print(list)
True
JAPAN
['China', 'USA', True, 123]
['China', 'USA', 123]
#列表脚本操作符

list = ['China','USA',True,123]

print(len(list))#列表长度

print(list+[1,2,3])#列表组合

print(list*2)#列表重复

if 'USA' in list:
    print('YES')
    
for i in list:
    print(i,end = ' ')
4
['China', 'USA', True, 123, 1, 2, 3]
['China', 'USA', True, 123, 'China', 'USA', True, 123]
YES
China USA True 123 
# 列表截取与拼接

l = [23,55,66]
print(l[1],l[-1],l[1:])

list = ['China','USA',True,123]
l += list
print(l)
55 66 [55, 66]
[23, 55, 66, 'China', 'USA', True, 123]
# 嵌套列表

s = [7,9,6]
t = [1,2,s]
list = ['China','USA',[5,4,3],True,123,t]

print(list)
print(list[2])
print(list[2][2])
print(list[5][1:])
['China', 'USA', [5, 4, 3], True, 123, [1, 2, [7, 9, 6]]]
[5, 4, 3]
3
[2, [7, 9, 6]]
# 列表函数&方法

li = ['China','USA',True,123]
l = [1,2,3,4]
str = 'ECUST'
l1 = (1,2,3,4)


print(len(li))
print(max(l))
print(min(l))
print(list(str))
print(list(l1))#list()方法可将元祖转换为列表
4
4
1
['E', 'C', 'U', 'S', 'T']
[1, 2, 3, 4]
l = ['China','USA','Elephant',123]

l.append('USA')#在列表末尾添加新的对象
print(l)

print(l.count('USA'))#统计元素在列表中出现的次数

l.extend(['JAPAN','ECUST'])#在列表末尾一次性追加另一个序列的多个值
print(l)

print(l.index('USA'))#在列表中找到某个值第一个匹配项的索引位置

l.insert(2,'Canada')#将对象插入列表
print(l)

l.pop()#移除列表中最后一个元素
print(l)
l.pop(2)#移除列表中指定位置的元素
print(l)

l.remove(123)#移除列表中某个值的第一个匹配项
print(l)

l.reverse()#反向列表中元素
print(l)

l.sort()#对原列表进行排序
print(l)

l2 = l.copy()#复制列表
print(l2)

l2.clear()
print(l2)
['China', 'USA', 'Elephant', 123, 'USA']
2
['China', 'USA', 'Elephant', 123, 'USA', 'JAPAN', 'ECUST']
1
['China', 'USA', 'Canada', 'Elephant', 123, 'USA', 'JAPAN', 'ECUST']
['China', 'USA', 'Canada', 'Elephant', 123, 'USA', 'JAPAN']
['China', 'USA', 'Elephant', 123, 'USA', 'JAPAN']
['China', 'USA', 'Elephant', 'USA', 'JAPAN']
['JAPAN', 'USA', 'Elephant', 'USA', 'China']
['China', 'Elephant', 'JAPAN', 'USA', 'USA']
['China', 'Elephant', 'JAPAN', 'USA', 'USA']
[]

元祖

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ()#创建空元祖
print(tup1)

#元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
tup2 = (50)
print(type(tup2))
tup2 = (50,)
print(type(tup2))

#访问元祖
tup = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')
print(tup[2])
print(tup[1:4])

#元祖中的元素是不允许修改的,但我们可以对元祖进行组合
tup1 = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')
tup2 = (1,2,3,4,5,6,7)
tup3 = tup1 + tup2
print(tup3)

#元祖中的元素是不允许删除的,但我们可以使用del语句来删除整个元祖
tup = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')
print(tup)
del tup
print(tup)
()
<class 'int'>
<class 'tuple'>
JAPAN
('Elephant', 'JAPAN', 'USA')
('China', 'Elephant', 'JAPAN', 'USA', 'USA', 1, 2, 3, 4, 5, 6, 7)
('China', 'Elephant', 'JAPAN', 'USA', 'USA')



---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-106-d315be1523c0> in <module>()
     23 print(tup)
     24 del tup
---> 25 print(tup)


NameError: name 'tup' is not defined
#元祖运算符

tup = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')

print(len(tup))#计算元素个数

print(tup+(True,'ECUST',123))#连接

print(tup*4)#重复

if 'Elephant' in tup:#元素是否存在
    print('YES')
else:
    print('NO')
    
for x in tup:#迭代
    print(x+'!')
5
('China', 'Elephant', 'JAPAN', 'USA', 'USA', True, 'ECUST', 123)
('China', 'Elephant', 'JAPAN', 'USA', 'USA', 'China', 'Elephant', 'JAPAN', 'USA', 'USA', 'China', 'Elephant', 'JAPAN', 'USA', 'USA', 'China', 'Elephant', 'JAPAN', 'USA', 'USA')
YES
China!
Elephant!
JAPAN!
USA!
USA!
#元祖索引、截取

tup = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')

print(tup[2])

print(tup[-2])

print(tup[1:4])
JAPAN
USA
('Elephant', 'JAPAN', 'USA')
#元祖内置函数

tup = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')

print(len(tup))#计算元祖元素个数

print(min(tup))#返回元祖中元素的最小值

print(max(tup))

l = [1,2,3,4,5]
print(tuple(l))
5
China
USA
(1, 2, 3, 4, 5)

字典

#访问字典里的值

X = {'Name':'Xu Huan','Age':'21','University':'ECUST'}

print(X['Name'])
print(X['Age'])

#修改字典

X['University'] = 'MIT'#更新University
print(X['University'])

X['Dormitory'] = '408'#添加信息
print(X['Dormitory'])

#删除字典元素

print(X)

del X['Dormitory']#删除键‘Dormitory’
print(X)

X.clear()#清空字典
print(X)

del X#删除字典
print(X)
Xu Huan
21
MIT
408
{'Name': 'Xu Huan', 'Age': '21', 'University': 'MIT', 'Dormitory': '408'}
{'Name': 'Xu Huan', 'Age': '21', 'University': 'MIT'}
{}



---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-27-53554b95dbde> in <module>()
     25 
     26 del X
---> 27 print(X)


NameError: name 'X' is not defined
#字典键的特性

#不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
X = {'Name':'Xu Huan','Age':'21','University':'ECUST','Name':'Huan Xu'}
print(X)

#键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
X = {7:'Xu Huan',True:'21','University':'ECUST'}
print(X[True])
print(X[7])
X = {['Name']:'Xu Huan','Age':'21','University':'ECUST'}
{'Name': 'Huan Xu', 'Age': '21', 'University': 'ECUST'}
21
Xu Huan



---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-33-6005225b29cc> in <module>()
      9 print(X[True])
     10 print(X[7])
---> 11 X = {['Name']:'Xu Huan','Age':'21','University':'ECUST'}


TypeError: unhashable type: 'list'
#字典内置函数&方法

X = {'Name':'Xu Huan','Age':21,'University':'ECUST'}#计算字典元素个数,即键的总数。
print(len(X))

print(X)
print(str(X))#输出字典,以可打印的字符串表示。

print(type(X))
print(type(X['Age']))

X.clear()#删除字典内的所有元素
print(X)

l = {'Name':'Xu Huan','Age':21,'University':'ECUST'}
X = l.copy()#返回一个字典的浅复制
print(X)

tup = ('China', 'Elephant', 'JAPAN', 'USA', 'USA')
X = X.fromkeys(tup)#创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
print(X)

print(X.get('China'))#	radiansdict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
print(X.setdefault('China'))#和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

if 'China' in X:
    print('Yes')
else:
    print('No')

print(X.items())#以列表返回可遍历的(键, 值) 元组数组

for i in X:
    print(X[i])
    
print(X.keys())#返回一个迭代器,可以使用 list() 来转换为列表
print(list(X.keys()))

X1 = {'TF':'Boys','Rocket':'Girls'}
X.update(X1)#把字典dict2的键/值对更新到dict里
print(X)

print(X.values())#返回一个迭代器,可以使用 list() 来转换为列表

print(X.pop('TF'))#删除字典给定键 key 所对应的值,返回值为被删除的值。
print(X)

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

集合

集合(set)是一个无序不重复元素的序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

扫描二维码关注公众号,回复: 3317492 查看本文章
s1 = {'USA','China','Canada','ECUST','USA'}
print(s1)#集合中的元素不重复

s2 = set('Xuhuan')
print(s2)

if 'ECUST' in s1:
    print('Yes')
else:
    print('No')
    
a = set('Xuhuan')
b = set('Elephant')

print(a & b)#集合a和b都包含的元素
print(a | b)#集合a或b包含的元素
print(a - b)#集合a包含但集合b并不包含的元素
print(a ^ b)#不同是包含于集合a和b的元素

for x in 'abcdef':
    if x not in 'abc':
        print(x,end = ' ')
        

{'ECUST', 'Canada', 'China', 'USA'}
{'n', 'X', 'u', 'a', 'h'}
Yes
{'a', 'h', 'n'}
{'n', 'X', 'l', 't', 'u', 'E', 'a', 'p', 'h', 'e'}
{'u', 'X'}
{'X', 'l', 't', 'u', 'E', 'p', 'e'}
d e f 
#集合的基本操作

s = {'USA','China','Canada','ECUST','USA'}

#添加元素
print(s)

s.add('Xuhuan')#将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作
print(s)

s.update({'Xuhuan',True,12,(23,45)})#可以添加元素,且参数可以是列表,元组,字典
print(s)

#移除元素
s.remove((23,45))#将元素x添加到集合s中移除。若元素并不存在,则会发生错误
print(s)

s.discard('China')#删除集合中的一个元素
print(s)

s.pop()#在集合中随机删除一个元素
print(s)

#计算集合中元素个数
print(len(s))

#清空集合
s.clear()
print(s)

#判断元素是否在集合中存在

s = {'USA','China','Canada','ECUST','USA'}
if 'China' in s:
    print('Yes')
else:
    print('No')
{'ECUST', 'Canada', 'China', 'USA'}
{'ECUST', 'Canada', 'USA', 'China', 'Xuhuan'}
{True, 'ECUST', 'Canada', 12, 'USA', (23, 45), 'China', 'Xuhuan'}
{True, 'ECUST', 'Canada', 12, 'USA', 'China', 'Xuhuan'}
{True, 'ECUST', 'Canada', 12, 'USA', 'Xuhuan'}
{'ECUST', 'Canada', 12, 'USA', 'Xuhuan'}
5
set()
Yes

猜你喜欢

转载自blog.csdn.net/cs_xuhuan/article/details/82822217