Python3学习笔记(二)--数据类型:字符串、列表、元组、数字、字典、集合

变量赋值

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(字典)

Python字符串

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

Python列表

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‘]]

Python元组

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

元组常用操作示例:

>>> 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数字

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

Python 字典

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相反:

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

Python 集合

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,看看是否会报错。

原文地址:https://www.cnblogs.com/Detector/p/8444119.html

时间: 2024-10-24 11:16:34

Python3学习笔记(二)--数据类型:字符串、列表、元组、数字、字典、集合的相关文章

python学习笔记二--列表

一.列表: 1. 任意类型对象的位置相关的有序集合. 2. 没有固定大小. 3. 对偏移量进行赋值及各种方法的调用,修改列表. 4. 列表是序列的一种. 5. 所有对字符串的序列操作对列表均适用. 二.对列表做索引,分片 三.调用内置的函数及方法 四.边界检查 五.嵌套 六.列表解析: 1. 把M里每一行的偏移量为1的元素取出来,并赋值给col2 2. 把M里每一行的偏移量为1的元素取出来并+1 把M里每一行的偏移量为1的元素取出来并取2的余数为0的元素 3.

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符

Python Day2 数据类型: 列表元组和字典

列表(List) 列表是指一组有序的数据集合,可以将各种各样的数据有序的存放在列表 中,并且可以对其进行增删改查,以及遍历.列表的存在是为了通过一个变量存 储更多的信息 通过 len()内置函数可查看列表中元素的个数 >>> len(list) 你可以通过索引来找到列表中每个元素的位置,记住索引是从 0 开始的 >>> shopping_list[2] #找Bike >>> shopping_list[0] #第一个元素取出来>>>

Python学习笔记<二>:列表、元组、字典

1 列表和元组 可以将列表和元组当成普通的"数组",它能保存任意数量任意类型的Python 对象.和数组一样,通过从0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象. 列表和元组有几处重要的区别.列表元素用中括号( [ ])包裹,元素的个数及元素的值可以改变.元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以).元组可以看成是只读的列表.通过切片运算( [ ] 和 [ : ] )可以得到子集,这一点与字符串的使用方法一样. 举例如下: >>>

day5_python学习笔记_chapter6_字符串列表元组

1. 序列:seq[n], seq[x:y], seq * n序列重复n次,切片, 序列翻转 s="abcde", s[::-1]="edcba" 内建函数:1. 类型转换: list(iter), str(obj), unicode(obj), tuple(iter) , 2. len(seq), max(), min() , reversed(), sorted(), sum(), 2. 字符串: in ,not in ,,, import string , s

python之数据类型(学习笔记二)

python之数据类型(学习笔记二) 在Python中,能够直接处理的数据类型有以下几种: (1)整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例 如: 1 , 100 , ‐8080 , 0 ,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用 0x 前缀和0-9,a-f表示,例 如: 0xff00 , 0xa5b4c3d2 ,等等. (2)浮点数 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时

Android学习笔记二十四之ListView列表视图二

Android学习笔记二十四之ListView列表视图二 前面一篇我们介绍了常用的几种适配器的简单实现和ListView的简单使用,这一篇中,我们介绍一下ListView的优化和一些其它的问题. ListView优化方法一 在ListView中,我们最常用的就是自定义Adapter,在我们自定义Adapter中,需要实现两个比较重要的方法getCount()和getView(),前者是负责计算ListView的总Item数,后者是生成Item,有多少个Item就会调用getView()方法多少次

Java学习笔记二:数据类型

Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围从-2 147 483 6至2 147 483 647 超过20亿,如果用来存储大于20亿的值,最好使用long型. 1.2  int 与Integer: Java中的数据类型分为基本数据类型和复杂数据类型.Int为前者,integer为后者. Integer是int的封装类,提供了很多转换方法,当

Android学习笔记二十七之ExpandableListView可折叠列表和StackView栈视图

Android学习笔记二十七之ExpandableListView可折叠列表和StackView栈视图 ExpandableListView可折叠列表 这一节我们介绍第三个用适配器的控件,ExpandableListView可折叠列表.这个控件可以实现我们在QQ中非常常见好友分组功能,ExpandableListView是ListView的子类,用法跟ListView差不多,下面我们来学习这个控件的基本使用: 常用属性: android:childDivider:指定各组内子类表项之间的分隔条,