Python3基本数据类型

目录

概述

Python3 中有六个标准的数据类型:

  • Number(数字) ### 常用 ###
  • String(字符串)### 常用 ###
  • List(列表)### 常用 ###
  • Tuple(元组)
  • Dictionary(字典)### 常用 ###
  • Set(集合)

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
  • string、list 和 tuple 都属于 sequence(序列)。

1. Number(数字)

Python 数字数据类型用于存储数值。数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
Python3 支持 int(整型)、float(浮点型)、complex(复数)、bool(布尔)、None(空值)。
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
像大多数语言一样,数值类型的赋值和计算都是很直观的。
内置的 type() 函数可以用来查询变量所指的对象类型。

1.1 int(整型)

整型(Int) 通常被称为是整型或整数,是正或负整数,不带小数点。
Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。

在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647;

在64位系统上,整数的位数为64位,取值范围为-263~263-1,即-9223372036854775808~9223372036854775807;

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

a=12
b=13
print(a+b)  ### 整型+整型=整型

运行结果如下:

25
1.2 float(浮点型)

浮点型由整数部分与小数部分组成,类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

a=12
b=13
c=3.14
d=2.8
print(a+b)  ### 整型+整型=整型
print(c+d)  ### 浮点型+浮点型=浮点型
print(a+c)  ### 整型+浮点型=浮点型

运行结果如下:

25
5.9399999999999995
15.14
1.3 complex(复数)

复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的复数的实部x和虚部y都是浮点型。
注:Python中存在小数字池:-5 ~ 257

intfloatcomplex
100.03.14j
10015.2045.j
786-21.99.322e-36j
08032.3e+18.876j
-490-90.-.6545+0J
-0x260-32.54e1003e+26J
0x6970.2E-124.53e-7j
1.4 bool(布尔值)

注意:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
[ 真或假 /Ture或False /1 或 0 ]

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

a=True
print(a)

b=(1==1)
print(b)

c=(1>2)
print(c)

d=a+b+c
print(d)

运行结果如下:

True
True
False
2
1.5 None(空值)

空值是python里的一个特殊的值,用None表示,一般用None填充表格缺失的值,可以使用type()函数来获取某变量的类型。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

a=None
print(a)
print(type(a))

运行结果如下:

None
<class 'NoneType'>

2. String(字符串)

2.1 字符串的书写格式

Python中的字符串用单引号 ’ 或双引号 " 括起来。Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


a='hello world a'
print(a)
b="hello world b"
print(b)
c="hello\tworld c"
print(c)
d="hello\nworld d"
print(d)
e=r"hello\nworld e"  #r表示取消转义字符串中的所有特殊字符,完全当做文本处理
print(e)

运行结果如下:

hello world a
hello world b
hello	world c
hello
world d
hello\nworld e
2.2 字符串的索引

字符串索引值以 0 为开始值,-1 为从末尾的开始位置。
在这里插入图片描述

2.2 字符串的截取

Python 访问子字符串,可以使用方括号来截取字符串。字符串截取的语法格式:

变量[头下标:尾下标]
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test="abcdef"
print(test,type(test))
print(test,len(test))


print(test[0:-1])   #输出第一个到倒数第二个的所有字符,因为字符串截取时是前闭后开区间
print(test[0])      #输出字符串第一个字符
print(test[2:4])    #输出从第三个开始到第四个的字符
print(test[2:])     #输出从第三个开始的后的所有字符
print(test*2)       #输出字符串两次,也可以写成print(2*test)
print(test+"123")   #连接字符串

运行结果如下:

abcdef <class 'str'>
abcdef 6
abcde
a
cd
cdef
abcdefabcdef
abcdef123
2.3 字符串转义符

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

转义字符描述
(在行尾时)续行符
\反斜杠符号
单引号
"双引号
\a响铃
\b退格(Backspace)
\000
\n换行符
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy十六进制数,yy代表的字符,例如:\x0a代表换行
\other其它的字符以普通格式输出

Python 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


#\n  	反斜杠 \ 转义换行符
#\t		反斜杠 \ 转义制表符
test="abcdef\tsnow"
print(test)
print(len(test))

print("---------分隔符----------")

test=r"abcdef\tsnow"
print(test)
print(len(test))

运行结果如下:

abcdef	snow
11
---------分隔符----------
abcdef\tsnow
12
2.4 字符串运算符
转义字符描述
+字符串连接
*重复输出字符串
[]重复输出字符串
[:]截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。
in成员运算符 - 如果字符串中包含给定的字符返回 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True
r/R所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。
%格式化字符串
2.5 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

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

格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0显示的数字前面填充’0’而不是默认的空格
%‘%%‘输出一个单一的’%’
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki


print ("我叫 %s. 今年 %d 岁!" % ('小明', 10))

运行结果如下:

我叫 小明, 今年 10 岁!
2.6 万恶的字符串拼接

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空间,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。

2.7 Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u。

在Python3中,所有的字符串都是Unicode字符串。

3. List [列表]

List [列表] 是 Python 中使用最频繁的数据类型。
List [列表] 可以完成大多数集合类的数据结构实现。
List [列表] 中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

3.1 列表的书写格式

List [列表] 是写在方括号 [] 之间、用逗号分隔开的元素列表。

['alex', 'seven', 'eric']
["alex", "seven", "eric"]
3.2 创建列表
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test= ['alex', 'seven', 'eric']
print(test,type(test))

test=list(['alex', 'seven', 'eric'])
print(test,type(test))

运行结果如下:

['alex', 'seven', 'eric'] <class 'list'>
['alex', 'seven', 'eric'] <class 'list'>
3.3 更新列表
3.3.1 更改列表某个元素的值
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

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

print("原始列表的第三个元素值为 ", list[2])
list[2] = 1002
print("更改后的第三个元素为 : ", list[2])
print("更改后的列表为 : ", list)

运行结果如下:

原始列表的第三个元素值为 :  1997
更改后的第三个元素为 :  1002
更改后的列表为 :  ['Google', 'yuki', 1002, 2000]
3.3.2 在列表最后添加新的元素
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

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

print("原始列表的长度为: ",len(list))
list.append("hello")
print("更改后的列表的长度为: ", len(list))
print("更改后的列表为 : ", list)

运行结果如下:

原始列表的长度为:  4
更改后的列表的长度为:  5
更改后的列表为 :  ['Google', 'yuki', 1997, 2000, 'hello']
3.3.3 在列表指定位置添加新的元素
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

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

print("原始列表的长度为: ",len(list))
list.insert(3,"我是新添加的第四个元素,我的索引是3")
print("更改后的列表的长度为: ", len(list))
print("更改后的列表为 : ", list)

运行结果如下:

原始列表的长度为:  4
更改后的列表的长度为:  5
更改后的列表为 :  ['Google', 'yuki', 1997, '我是新添加的第四个元素,我的索引是3', 2000]
3.4 删除列表元素
3.4.1 可以使用 remove函数来删除列表的的元素(根据元素内容来删除)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

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

print("原始列表的第三个元素值为 : ", list[2])
list.remove(1997)
print("删除后第三个元素 : ", list[2])
print("删除元素之后的列表为 : ", list)

运行结果如下:

原始列表的第三个元素值为 :  1997
删除后第三个元素 :  2000
删除元素之后的列表为 :  ['Google', 'yuki', 2000]
3.4.2 可以使用 pop函数来删除列表的的元素(根据元素索引来删除)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

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

print("原始列表的第三个元素值为 : ", list[2])
list.pop(2)
print("删除后第三个元素为 : ", list[2])
print("删除元素之后的列表为 : ", list)

运行结果如下:

原始列表的第三个元素值为 :  1997
删除后第三个元素为 :  2000
删除元素之后的列表为 :  ['Google', 'yuki', 2000]

3.4.3 还可以使用 del 语句来删除列表的的元素(根据元素索引来删除)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

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

print("原始列表的第三个元素值为 :", list[2])
del list[2]
print("删除后第三个元素为 : ", list[2])
print("删除元素之后的列表为 : ", list)

运行结果如下:

原始列表的第三个元素值为 :  1997
删除后第三个元素为 :  2000
删除元素之后的列表为 :  ['Google', 'yuki', 2000]
3.5 列表的索引

列表索引值以 0 为开始值,-1 为从末尾的开始位置。
在这里插入图片描述

3.6 列表脚本操作符

列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。

表达式描述结果
len([1, 2, 3])长度3
[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=" ")迭代123
3.7 列表的截取和拼接

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

biglist=['abcd', 786 , 2.23, 'yuki', 70.2]
print(type(biglist))
print(len(biglist))

print(biglist[0])      #输出列表第一个元素
print(biglist[1:3])    #输出第二个元素、第三个元素
print(biglist[2:-1])   #从第三个元素到倒数第二个元素
print(biglist[3:])     #输出从第四个元素开始的所有元素

tinylist=['name','123']
print(tinylist*2)       #输出两次列表 也可以是2*tinylist
print(biglist+tinylist) #连接列表

运行结果如下:

<class 'list'>
5
abcd
[786, 2.23]
[2.23, 'yuki']
['yuki', 70.2]
['name', '123', 'name', '123']
['abcd', 786, 2.23, 'yuki', 70.2, 'name', '123']

与Python字符串不一样的是,列表中的元素是可以改变的。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test = ['alex', 'seven', 'eric']
print(test)

test[1]="yuki"
print(test)

test[0:2]=""
print(test)

test[0:1]=[]
print(test)

运行结果如下:

['alex', 'seven', 'eric']
['alex', 'yuki', 'eric']
['eric']
[]

Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串
在这里插入图片描述
如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串:

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test = ['a', 'b', 'c','d']
print(test)
# test[0]='a', test[1]='b' ,而 -1 表示最后一个元素 test[-1]='d' ( 与 test[3]='d' 一样)
# test[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
print(test[-1::-1])

运行结果如下:

['a', 'b', 'c', 'd']
['d', 'c', 'b', 'a']
3.8 嵌套列表

使用嵌套列表即在列表里创建其它列表。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki

x=['a', 'b', 'c']
y=[1, 2, 3]
z=[x,y]

print(type(z),z)
print(z[0])
print(z[0][1])

运行结果如下:

<class 'list'> [['a', 'b', 'c'], [1, 2, 3]]
['a', 'b', 'c']
b

4. Tuple(元组)

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

4.1 元组的书写格式

元组写在小括号 () 里,元素之间用逗号隔开。

('alex', 'seven', 'eric',5558)
("alex", "seven", "eric",772)
4.2 创建元组

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

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test=()   #创建空元组
print(test,type(test))

test=(12, 15, 18)
print(test,type(test))
test=tuple((12, 15, 18))
print(test,type(test))

test="a", "b", "c", "d"  #不需要括号也可以
print(test,type(test))

运行结果如下:

() <class 'tuple'>
(12, 15, 18) <class 'tuple'>
(12, 15, 18) <class 'tuple'>
('a', 'b', 'c', 'd') <class 'tuple'>

元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test=(20)
print(test,type(test))

test=(21,)
print(test,type(test))

运行结果如下:

20 <class 'int'>
(21,) <class 'tuple'>
4.3 元组脚本操作符

与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。

表达式描述结果
len((1, 2, 3))长度3
(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, )迭代123
4.4 元组的索引及截取

元组与字符串类似,元祖索引值以 0 为开始值,-1 为从末尾的开始位置,可以进行截取,组合等。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


big=("abcd",12, 15, 18,"yuki")
print(big)          #输出完整元组
print(big[0])       #输出元组的第一个元素
print(big[1:3])     #输出从第二个元素开始到第三个元素
print(big[2:])      #输出从第三个元素开始的所有元素

small=(123, 'dog')
print(small*2)      #输出两次元组,也可以是2*small
print(big+small)    #连接元组

运行结果如下:

('abcd', 12, 15, 18, 'yuki')
abcd
(12, 15)
(15, 18, 'yuki')
(123, 'dog', 123, 'dog')
('abcd', 12, 15, 18, 'yuki', 123, 'dog')
4.4 元组的修改

元组(tuple)与列表[list]类似,不同之处在于元组的元素不能修改。其实,可以把字符串看作一种特殊的元组。
元组中的元素值虽然是不允许修改的,但我们可以对元组进行连接组合,而且它可以包含可变的对象,比如list列表。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test1 = (12, 34.56)
test2 = ('abc', 'xyz')

# 以下修改元组元素操作是非法的。
# test1[0] = 100

# 创建一个新的元组
test3 = test1 + test2
print(test3)

运行结果如下:

(12, 34.56, 'abc', 'xyz')
4.5 元组的删除

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

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test = (12, 34.56,'abc', 'xyz')
print(test,type(test))
# 以下修改元组元素操作是非法的。
# test[0] = 100

# 删除整个元祖
del test
print("删除后的元组 test : ",test)

以上实例元组被删除后,输出变量会有异常信息,运行结果如下:

(12, 34.56, 'abc', 'xyz') <class 'tuple'>
Traceback (most recent call last):
  File "E:/softwares/python/pythonProject/day20200802/helloWorld.py", line 13, in <module>
    print("删除后的元组 test : ",test)
NameError: name 'test' is not defined

5. Dictionary{字典}

字典(dictionary)是Python中另一个非常有用的可变容器模型,且可存储任意类型对象。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。字典常常用于高速查找。

5.1 字典的书写格式

字典是一种映射类型,整个字典包括在花括号 {} 中,它是一个无序的 键(key) : 值(value) 的集合。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号分割, 书写格式如下:

d={key1 : value1, key2 : value2 }

{'name': 'yuki', 'age': 18}

{"name": "yuki", "age": 18}
5.2 创建字典

注意:
1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字必须为不可变类型,且不能重复。
3、值可以取任何数据类型,但键必须是不可变的,如字符串,数字,元祖,而不能是列表。
4、创建空字典使用 { }。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={}
print(type(test),test)

test={'name': 'yuki', 'age': 18}
print(type(test),test)

test=dict({'name': 'yuki', 'age': 18})
print(type(test),test)

运行结果如下:

<class 'dict'> {}
<class 'dict'> {'name': 'yuki', 'age': 18}
<class 'dict'> {'name': 'yuki', 'age': 18}
5.3 访问字典里的值
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 18}
print(test['name'])
print(test['age'])
#print(test['gender']) #如果用字典里没有的键访问数据,会报错
print(test.get('gender')) #如果用字典里没有的键访问数据,用get方法访问不会报错,返回None

运行结果如下:

yuki
18
None
5.4 修改字典

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

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 18}
print(test,type(test),len(test))

test['age']=35   #更新键age的值
print(test,type(test),len(test))

test['gender']='female'  #添加键gender并赋值
print(test,type(test),len(test))

print(test.keys())  #输出字典所有键
print(test.values())  #输字典出所有值

运行结果如下:

{'name': 'yuki', 'age': 18} <class 'dict'> 2
{'name': 'yuki', 'age': 35} <class 'dict'> 2
{'name': 'yuki', 'age': 35, 'gender': 'female'} <class 'dict'> 3
dict_keys(['name', 'age', 'gender'])
dict_values(['yuki', 35, 'female'])
5.5 清空、删除字典(元素)

能删单一的元素也能清空字典,清空只需一项操作。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 35, 'gender': 'female'}
print(test,type(test),len(test))

del test['name']   #删除字典的键 'name'
print(test,type(test),len(test))

test.clear()      #清空整个字典,但字典还存在,只不过是空字典
print(test,type(test),len(test))

del test   # 删除字典,字典不存在了
#print(test,type(test),len(test))   #会报错

运行结果如下:

{'name': 'yuki', 'age': 35, 'gender': 'female'} <class 'dict'> 3
{'age': 35, 'gender': 'female'} <class 'dict'> 2
{} <class 'dict'> 0

6. Set{集合}

Set{集合} 是一个无序的不重复元素序列,构成集合的事物或对象称作元素或是成员。
Set{集合}基本功能是进行成员关系测试和删除重复元素。

6.1 集合的书写格式
a={'Google', 'Taobao', 18, 'Facebook', 'Zhihu', 'Baidu'}

b=set(['Google', 'Taobao', 18, 'Facebook', 'Zhihu', 'Baidu'])
6.2 创建集合

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

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'Google', 'Taobao', 18, 'Facebook', 'Zhihu', 'Baidu'}
print(test,type(test))

test=set({'Google', 'Taobao', 18, 'Facebook', 'Zhihu', 'Baidu'})
print(test,type(test))

test=set([1,0,2,2,4,5,5,6,7,6])
print(test,type(test))

运行结果如下:

{'Zhihu', 'Google', 'Taobao', 18, 'Facebook', 'Baidu'} <class 'set'>
{18, 'Facebook', 'Zhihu', 'Google', 'Taobao', 'Baidu'} <class 'set'>
{0, 1, 2, 4, 5, 6, 7} <class 'set'>
6.3 给集合添加元素

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

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'c', 'd', 'e', 5,12.5}
print(type(set1),set1)

set1.add('f')
print(type(set1),set1)

运行结果如下:

<class 'set'> {'d', 5, 'a', 'c', 12.5, 'e', 'b'}
<class 'set'> {'d', 5, 'a', 'c', 12.5, 'e', 'f', 'b'}

update(self,element ) 也可以添加元素,element 可以有多个,用逗号分开,且参数可以是列表,元组,字典,集合等。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
print(type(set1),set1)

set1.update('g','h')    #添加多个字符串元素
print(type(set1),set1)

set1.update(['u',3])    #添加列表元素
print(type(set1),set1)

set1.update((1,9.2))      #添加元组元素
print(type(set1),set1)

set1.update({'name':'yuki'})     #添加字典元素
print(type(set1),set1)

set1.update({'suno',100})    #添加集合元素
print(type(set1),set1)

运行结果如下:

<class 'set'> {5, 'b', 'd', 'a', 'e'}
<class 'set'> {5, 'b', 'd', 'a', 'g', 'h', 'e'}
<class 'set'> {3, 5, 'b', 'd', 'a', 'g', 'h', 'u', 'e'}
<class 'set'> {1, 3, 5, 'b', 9.2, 'd', 'a', 'g', 'h', 'u', 'e'}
<class 'set'> {1, 3, 5, 'b', 9.2, 'name', 'd', 'a', 'g', 'h', 'u', 'e'}
<class 'set'> {1, 3, 100, 5, 'b', 9.2, 'name', 'd', 'a', 'g', 'h', 'u', 'suno', 'e'}
6.4 移除集合里面的元素

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

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'c', 'd', 'e', 5,12.5}
print(type(set1),set1)

set1.remove(5)
print(type(set1),set1)

set1.remove('r')
print(type(set1),set1)

运行结果如下:

<class 'set'> {'c', 5, 12.5, 'b', 'd', 'e', 'a'}
<class 'set'> {'c', 12.5, 'b', 'd', 'e', 'a'}
Traceback (most recent call last):
  File "E:/softwares/python/pythonProject/day20200802/helloWorld.py", line 12, in <module>
    set1.remove('r')
KeyError: 'r'

discard(self,element ) 方法也是移除集合中的元素,且如果元素不存在,不会发生错误。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'c', 'd', 'e', 5,12.5}
print(type(set1),set1)

set1.discard(5)
print(type(set1),set1)

set1.discard('r')
print(type(set1),set1)

运行结果如下:

<class 'set'> {'e', 5, 12.5, 'b', 'd', 'a', 'c'}
<class 'set'> {'e', 12.5, 'b', 'd', 'a', 'c'}
<class 'set'> {'e', 12.5, 'b', 'd', 'a', 'c'}
6.5 清空、删除集合(元素)
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

set1={'a', 'b', 'd', 'e', 5}
print(type(set1),set1)

set1.clear()   #清空集合(元素),但集合还是存在,只不过是空集合
print(type(set1),set1)

del set1  #删除集合,集合不存在,下面的语句会报错
# print(type(set1),set1)

运行结果如下:

<class 'set'> {'b', 'e', 5, 'd', 'a'}
<class 'set'> set()
6.6 集合成员测试
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'Google', 'Taobao', 18, 'Facebook', 'Zhihu', 'Baidu'}
print(test,type(test))

#成员测试
if "Facebook" in test:
    print("Facebook在集合中")
else:
    print("Facebook不在集合中")

if "facebook" in test:
    print("facebook在集合中")
else:
    print("facebook不在集合中")

运行结果如下:

{'Google', 'Zhihu', 'Facebook', 18, 'Taobao', 'Baidu'} <class 'set'>
Facebook在集合中
facebook不在集合中
6.7 集合运算
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

aset={'a', 'b', 18, 'c', 'd', 'e'}
bset={'f', 'b', 13, 'c'}


print(aset-bset)     # aset 和 bset 的差集
print(bset-aset)     # bset 和 aset 的差集

print(aset|bset)     # aset 和 bset 的并集

print(aset&bset)     # aset 和 bset 的交集

print(aset^bset)     # aset 和 bset 中不同时存在的元素

运行结果如下:

{'e', 18, 'a', 'd'}
{'f', 13}
{'e', 'c', 'b', 13, 'f', 18, 'a', 'd'}
{'c', 'b'}
{'e', 13, 'f', 18, 'a', 'd'}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值