zoukankan      html  css  js  c++  java
  • 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')) #找到元素的个数
  • 相关阅读:
    JSP语法学习笔记
    jsp 自定义标签
    java排序算法
    Linux系统rootpassword改动
    人生中第一次面试——北漂18年(1)
    msgsnd的一个小问题
    推荐系统中的矩阵分解演变方式
    FZU 2124 FOJ 2124 吃豆人【BFS】
    啦啦啦啦、新人学习中。。
    【Linux】线程并发拷贝程序
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/9003147.html
Copyright © 2011-2022 走看看