Python3学习笔记(二)--变量数据类型

原文链接:http://www.cnblogs.com/Detector/p/7615052.html

变量赋值

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

Python中允许为多个变量同时赋值

a = b = c =1

a, b, c = 1, 'b', 1.1   # 将1, 'b'分别赋值给a、b,1.1赋值给c

标准数据类型

Python有五个标准的数据类型

  • String(字符串)
  • List(列表)
  • Numbers(数字)
  • Tuple(元组)
  • Dictionary(字典)

字符串

String(字符串)是Python中最忙,被操作最多的数据类型,一般形式如下:

a = "123456789a~zA~z...."

字符串可以被切割,因为字符串是不可变的,切割实质上是生成了新的字符串,

示例:

a = 'you are the sunshine!'

print(a)  # 输出完整字符串 print(a[0]) # 输出字符串中的第一个字符 print(a[2:5]) # 输出字符串中第三个至第五个之间的字符串 print(a[2:]) # 输出从第三个字符开始的字符串 print(a * 2) # 输出字符串两次 print(a+"TEST") # 输出连接的字符串

以上的输出结果如下:

you are the sunshine!
y
u a
u are the sunshine!
you are the sunshine!you are the sunshine!
you are the sunshine!TEST

列表

List(列表) 是 Python 中除字符串外使用最频繁的数据类型,是一个可变的有序表

它的元素可以是五个标准的数据类型中的任何一个,也就是说列表中可以嵌套列表。

列表常用的操作示例:

>>> a = [1, 2.1, 'a', ['b']] # 定义一个列表 >>> a.append('c') # 往列表里面添加一个字符串c >>> print(a) [1, 2.1, 'a', ['b'], 'c'] >>> a.insert(1, 'd') # 往列表里面指定的位置插入字符串d >>> print(a) [1, 'd', 2.1, 'a', ['b'], 'c'] >>> a.pop() # 删除列表最后一个元素 'c' >>> print(a) [1, 'd', 2.1, 'a', ['b']] >>> a.pop(1) # 指定删除列表的第二个元素 'd' >>> print(a) [1, 2.1, 'a', ['b']] >>> a[1] = 'e' # 将列表的第二个元素替换为字符串e >>> print(a) [1, 'e', 'a', ['b']]

元组

元组类似于列表,但是不能二次赋值,相当于只读列表;但是这个也不是绝对的

元组常用操作示例:

>>> a = ("a",)  # 定义一个元素的元组,必须加逗号以区别于普通的括号
>>> b = (1, 1.2, 'a') # 定义一个元组 >>> b[1] # 取出元组的第二个数据 1.2 >>> b[1:3] # 取出元组的第二到三个数据 (1.2, 'a') >>> a = ('a','b',['A','B']) # 定义一个‘可变的’元组 >>> a[2][1] = 'C' >>> a ('a', 'b', ['A', 'C'])

上面的示例中,表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。

tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。

即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!

数字

Python支持四种不同的数字类型:

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制])
  • float(浮点型)
  • complex(复数)

一些数值类型的实例:

int  long float complex
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j
-0490 535633629843L -90. -.6545+0J
-0x260 -052318172735L -32.54e100 3e+26J
0x69 -4721885298529L 70.2E-12 4.53e-7j

字典

dict全称dictionary,在其他语言中也称为map,是除列表以外python之中最灵活的内置数据结构类型。

列表是有序的对象集合,字典是无序的对象集合。

常用操作示例:

dict = {}  # 定义一个空字典
dict['tips'] = "you are the sunshine!" # 给空字典添加一个key为tips,value值为"you are the sunshine!"的键值对 testdict = {'name': 'bingo', 'socre': 99} print(dict['tips']) # 输出键为'tips' 的值 print(testdict) # 输出完整的字典 print(testdict.keys()) # 输出所有键 print(testdict.values() ) # 输出所有值

输出结果:

you are the sunshine!
{'name': 'bingo', 'socre': 99} dict_keys(['name', 'socre']) dict_values(['bingo', 99])

dict获取值时,如果值不存在就会报错,有两种方法避免:

通过in判断key是否存在

>>> 'c' in dict
False

通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

>>> dict.get('tipsssssss',-1) -1 >>> dict.get('tips',-1) 1

其他操作:

testdict.pop('name')   # 删除testdict中key为name的元素
print(testdict) dict.update(testdict) # 合并两个字典的值 print(dict)

list和dict对比,dict是用空间来换取时间的一种方法。

dict和list比较,dict有以下几个特点:

  • 查找和插入的速度极快,不会随着key的增加而变慢;
  • 需要占用大量的内存,内存浪费多。

而list相反:

  • 查找和插入的时间随着元素的增加而增加;
  • 占用空间小,浪费内存很少。

集合

set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

 

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。

重复元素在set中自动被过滤:

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

 

通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果:

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

 

 

通过remove(key)方法可以删除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

 

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

 

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。

你可能感兴趣的:(Python3学习笔记(二)--变量数据类型)