Python学习笔记三_数据类型(列表、元组)

计算机在处理各种数值、文本、图形、音频、视频、网页等数据时,不同的数据,需要定义不同的数据类型。这篇随笔主要记录整型、浮点型、布尔类型、列表及元组。

一、整型和浮点型

1、整型

也就是整数类型,python3中都是int类型,没有long类型。有正整数、负整数和0。

1 a = 1.2
2 b = int(a)
3 print(int(b))

2、浮点型

也就是小数类型,float类型

二、布尔类型

布尔类型就是真和假,只有两种:Ture和False。

除了True和False还有0和1,非0即真。

Python中True是关键字,必须大写T,否则是普通变量不是布尔值

1 a = 3
2 b = 6
3 print(a>b)

三、列表和列表操作

1、列表定义

   (1) 它比字符串取值方便

         例如存一个班级的人的名字,用字符串存的话,取值非常麻烦,所以有了列表。列表在开发过程中,是最常用的数据类型之一。

   (2) 列表,list,数组,array都是列表,用[]定义即可

1 list1 = [1,2,3,4] #一个普通数组
2 list2 = ['小白','小黑','小黄',['小蓝',20]]  #二维数组
3 list3 = ['name','sex',['addr',['天津,河北']]]  #三维数组

   (3) 下标,索引,角标,编号都是下标,通过下标访问列表中的元素,下标从0开始。字符串也有下标和列表对应。

   (4) 最前面一个元素的下标是0,最后面一个元素的下标是-1

2、列表操作

   (1) 增加:append,insert

1 city = ['北京','上海','广州']
2 city.append('深圳') #从最后面开始增加
3 city.insert(1,'南京') #从指定位置增加,这个1代表下标,不能添加负数位置(-1)
4 print(city)

   (2) 删除:pop,remove,clear,del

1 city = ['北京','上海','广州','深圳']
2 city.pop()  #不传入下标的话,删除最后一个值,传入下标删除指定位置的值
3 city.remove('上海')  #删除指定的值
4 del city[0]  #删除指定位置的值
5 city.clear()  #清空该列表
6 print(city)

   (3) 修改:直接对指定位置元素进行赋值

1 city = ['北京','上海','广州']
2 city[2] = '深圳' #修改指定位置的值
3 #修改的时候如果指定的下标不存在,会报错
4 print(city)

   (4) 查找:list[index] 

1 city = ['北京','上海','北京','深圳']
2 print(city[0]) #查找指定位置的元素
3 print(city[-1]) #-1代表最后一个元素

3.列表内置方法

取索引 index(object),取元素出现次数 count(object)

1 city = ['北京','上海','北京','深圳']
2 print(city.index('深圳')) #获取元素的下标,找不到元素会报错
3 print(city.count('北京')) #查看元素在list里面出现的多少次

排序 sort(),扩展 extend(object),反转 reverse()

需要注意的是排序、扩展、反转均会改变原列表的值。没有返回值,先使用方法,再去打印原列表查看结果 

复制代码
 1 city = ['北京','上海','北京','深圳']
 2 city.sort() #升序排序,根据ASCII码排序,会改变原数组的值
 3 print(city)
 4 city.sort(reverse=True) #降序排序
 5 print(city)
 6 city2 = ['西安','成都']
 7 city.extend(city2)  #扩展列表,把city2的值加到city中,会改变原数组的值
 8 print(city)
 9 city.reverse()
10 print(city) #反转数组,会改变原数组的值
复制代码

合并及复制列表

1 city = ['北京','上海','北京','深圳']
2 city2 = ['西安','成都']
3 print(city + city2) #合并list
4 print(city*3) #复制三次list
5 print('你好'*3)  #复制三次字符串

4.多维列表

多维列表同样通过下标来查找、修改

多层嵌套,从最外层一层层取

1 stus = ['小白',['小黑','男'],['小红',['女',['北京',160]]]]
2 print(stus[1][1])
3 print(stus[2][1][1][0])

5.切片

        切片是list取多个值的一种方式,即从第几个元素开始,到第几个元素结束,获取它们之间的值。

        格式是city[1:5:2],表示从第二个元素到第四个元素,步长为2。

   切片是不包含后面那个元素的,顾头不顾尾,前面下标如果是0的话,可以省略不写即city[:5]

1 names = ['Amy','Andy','Ben','Lily','Kate','John']
2 print(names[1:4])  #取下标1至4之间值,包括1,不包括4
3 print(names[1:-1])  #取下标1至-1的值,不包括-1,即不包括最后一个元素
4 print(names[:4])  #取下标0至4的值,不包括4,如果是从头开始取,取到后面某个下标结束,那么开头的下标可以不写
5 print(names[1:])  #取下标1开始后面的所有元素,如果从某个下标开始取,取到末尾结束,那么末尾的下标可以不写
6 print(names[:])  #取所有

  步长默认为1,表示隔多少个元素取一次

1 nums = list(range(1,10))
2 print(nums) #1-9,共10个数
3 print(nums[::2]) #取所有的元素,然后每隔2个元素取一个
4 #[1, 3, 5, 7, 9]
5 print(nums[1:8:3]) #取第二个元素开始,到第八个结束,隔3个取一次
6 #[2, 5, 8]

   步长为正,从左往右边开始取值
   步长为负,从右边往左边开始取值

   步长为-1,反转list,但不会改变原list值,reverse()会改变原list的值

复制代码
1 nums = list(range(1,10))
2 print(nums)#1,2,3,4,5,6,7,8,9
3 print(nums[::-1]) #反转list,但不会改变原来list的值
4 #9,8,7,6,5,4,3,2,1
5 print(nums) #1,2,3,4,5,6,7,8,9
6 nums.reverse()
7 print(nums) #改变了原来的list值
8 #9,8,7,6,5,4,3,2,1
复制代码
1 nums = list(range(1,10))#1,2,3,4,5,6,7,8,9
2 print(nums[2::-2]) #3,1
3 print(nums[:5:-3]) #9
4 print(nums[1:5:-1]) #为空

 切片操作也可以对字符串使用

1 info = '今天天气真好,是不是'
2 print(info[1:4])  #天天气
3 print(info[:5:-1])  #是不是,

6.列表的循环

循环在循环可迭代对象的时候,每次循环的是里面的每一个元素
list和string可循环,int、float不能循环
复制代码
1 stus = ['Amy','Lily','Ben',[1,2,3]]
2 for name in stus:
3     if type(name) == list: #判断一个变量的类型
4         for i in name:
5             print(i)
6     else:
7         print(name)
复制代码

四、元组和元组操作

1、元组定义

    元组也是一个list,他和list的区别是,元组里面元素无法修改(可以循环、切片、下标取值、但不可以修改值),用()定义,小括号。例如要存数据库的连接信息,这个在程序运行中是不能被修改的,就可以用元组。

1 db = ('192.168.10.1','root','123456',3306,'my_db') #定义元组
2 print(db[1:2]) #切片
3 print(db[0]) #下标取值
4 for i in db: #循环
5     print(i)

    如果元组里面 只有一个元素的话,那么你必须在这个元素后面加一个逗号。

1 a = (1)
2 b = (1,)
3 c = (1,2,3)
4 print(type(a)) #<class 'int'>
5 print(type(b)) #<class 'tuple'>
6 print(type(c)) #<class 'tuple'>

2、元组操作

  元组只有两个方法,那就是count和index

1 db = ('192.168.10.1','root','123456',3306,'my_db') #定义元组
2 print(db.index('root')) #找到元素的下标
3 print(db.count('192.168.10.1')) #找到元素的个数

猜你喜欢

转载自www.cnblogs.com/weilemeizi/p/9003147.html