1. 列表的初识
  • why:int bool str

    • str: 存储少量的数据。
    • str:切片还是对其进行任何操作,获取的内容全都是str类型。存储的数据单一。
  • what:list

    • list = [66, 'im',True,[1, 2, ‘False’]] 承载任意数据类型,存储大量的数据。
    • python常用的容器型数据类型。list 列表,其他语言:Java: 数组。
    • 列表是有序的,可索引,切片(步长)。
    1. 列表可以储存python中的任何对象:整数、浮点数、字符串、函数、布尔值、列表、元祖、字典等;

    2. 列表中的元素是有序且可变的;

  1. 索引,切片,步长。**
li = [100, '我和你', True, [1, 2, 3]]# 索引
print(li[0], type(li[0]))
print(li[1],type(li[1]))
print(li[-1])
print(li[:2])# 切片 (顾头不顾尾)
>>>100 <class 'int'>
我和你 <class 'str'>
[1, 2, 3]
[100, '我和你']

相关练习题:

li = [1, 3, 2, "a", 4, "b", 5,"c"]
通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
  1. 列表的增删改查

    \1. 在列表末尾增加一个数据项(list.append()方法),没有返回值,与list.pop()对比。

    list1 = ['a','b',1,2]
    print(list1.append('c'))
    >>>None
    list1.append('c')
    print(list1)
    >>>['a','b',1,2,'c'] #注意变量只是指向某种数据
    list1 = ['a','b',1,2]
    li1 = list1.append('c') #li1只是一个方法动作
    li2 = list1
    print(li2)
    print(li1)
    list1.append(11)
    print(li2)
    >>>
    ['a', 'b', 1, 2, 'c']
    None
    ['a', 'b', 1, 2, 'c', 11] #li2指向的数据增加了元素11
    #两者对比。变量只是指向某种数据,并不是数据本身。
    a = 1
    b = a
    a = 2
    print(b)
    >>>1

    \2. 在列表末尾增加一个数据项集合( 添加多个元素的方法,迭代追加)(list.extend()方法);

    l1 = [1,2]
    l1.extend('abcd')
    print(l1)
    >>>[1, 2, 'a', 'b', 'c', 'd']
    l2 = [1,2]
    l2.extend(['asd',1,2])
    print(l2)
    >>>[1, 2, 'asd', 1, 2]

    \3. 列表的特殊插入法,;在特定位置增加一个数据项(list.insert()方法):

    a=['b','c','d']
    a.insert(0,'a')
    a[0:1]
    >>>['a']

    \4. 从列表末尾删除数据,按照索引删除(list.pop()方法),若果没有给出索引值则默认删除最后列表的一个元素,有返回值,返回删除的元素,与list.append()对比;

    l1 = [1,2,3,4]
    l1.pop()
    print(l1)
    >>>[1,2,3]
    print(l1.pop(0))
    >>>1

    \5 . 在列表中删除一个特定项(list.remove()方法);如果有重复的则默认删除第一个元素(从左开始)

    l1 = [1,2,3,3]
    l1.remove(3)
    print(l1)
    >>>[1, 2, 3]

    \6. list.clear()清空列表的方法,del 按照索引删除,也可以按照切片删除(可加步长),无返回值

    l1 = [1,2,3,4,5,6]
    del l1[0]
    print(l1)
    >>>[2.3.4,5,6]
    del l1[0:4:2]
    print(l1)
    >>>[3,5,6]
    l1.clear()
    print(l1)
    >>>[]

    \7. 按照索引改元素;按照切片更改元素(迭代增加),也可按照切片加步长更改,但必须一 一 对应。

    l1 = [1,2,3,4]
    l1[0] = 0
    print(l1)
    >>>[0,2,3,4]
    l1[1:] = 'abcd'
    print(l1)
    >>>[0, 'a', 'b', 'c', 'd']
    l1[::2]='123'
    print(l1)
    >>>['1', 'a', '2', 'c', '3']

    \8. b=sorted(a,reverse=True) 函数按照长短、大小、英文字母的顺序给列表中的元素进行排序,但不会改变列表本身

    l1 = ['c','b','a']
    l2 = sorted(l1)
    print(l2)
    >>>['a', 'b', 'c']
    print(l1)
    >>>['c', 'b', 'a']
    print(sorted(l1,reverse=False))
    >>>['a', 'b', 'c']

    \9. 在整理列表时,如果需要两个列表,可用zip函数:

    for a , b in zip(list1,list2)

    l1 = [1,2,3]
    l2 =['a','b']
    for x,y in zip(l1,l2):
    print(x,y)
    >>>1 a
    2 b

    \10. 推导式(列表的解析式:不仅方便,并且在执行的效率上更好)

    有许多元素要装进列表中:list = [i for i in range(1,11)] ,(range(): 类似于列表,自定制数字范围的数字列表,可索引,也可切片),List = [item1 for item2 in iterable]

    l1 = [i for i in range(1,11,1)]   #步长可正可负,步长为1时可省略即为range(1,11)
    #若从0开始,步长为1则可写为range(11)
    print(l1)
    >>>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    \11. 列表是有序的,可以用enumerate()函数在索引的时候得到每个元素的具体位置:

    for num , str in enumerate(list):

    l1 = ['a','b','c']
    for num,int in enumerate(l1):
    print(num,int)
    >>>0 a
    1 b
    2 c
  2. 列表的嵌套

    l1 = [1, 2, 'woiyou', [1,'woi',2]]
    # 1, 将l1中的'woiyou'变成大写并放回原处。
    l1[2] = l1[2].upper()
    # 2,给小列表[1,'woheyou',3,]追加一个元素,'山就在那儿'。
    l1[-1].append('山就在那儿')
    # 3,将列表中的'wohe'通过字符串拼接的方式在列表中变成'you'
    l1[-1][1] += 'you' #l1[-1][1] = l1[-1][1] + 'you'
  3. 元组

    • 只读列表。存大量的数据,可以索引,切片(步长),不可更改,但元祖中列表里的元素可以按照列表更改,示例: (1, True, [1, 2, 3])。

    • 元祖的拆包:分别赋值,必须一 一对应。(列表也可以拆包,但一般不用)

      a,b = (1,2)
      print(a,b)
      >>>1 2
      a,b = [1,2]
      print(a,b)
      >>>1 2

python基础学习day4的更多相关文章

  1. Python基础学习Day4 列表的使用方法、range 用法、in用法

    一.列表 1.1列表:python基础数据类型之一:其他语言也有列表的概念,js 数组,可索引 ,可切片,可加步长 1.2列表的索引,切片,切片+ 步长 结果: 注意:列表里元素的数据类型,就是它本身 ...

  2. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  3. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  4. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  5. Python 基础学习 总结篇

    Python 基础学习总结 先附上所有的章节: Python学习(一)安装.环境配置及IDE推荐 Python学习(二)Python 简介 Python学习(三)流程控制 Python学习(四)数据结 ...

  6. (一)python基础学习

    根据廖雪峰老师的python教程写一些学习总结! Python基础学习 1.使用list和tuple (1)list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时 ...

  7. python基础学习(起步)

    目录 python基础学习(起步) 变量 常量 变量的内存管理 python垃圾回收机制 变量的其他赋值方式 今日编程小题 本人能力有限,若有偏颇之处请读者大大不吝赐教! 祝大家每天都在成长! pyt ...

  8. Python基础学习二

    Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...

  9. Python基础学习一

    Python基础学习一 1.变量与常量 变量名:大小写英文.数字.下划线的组合,数字不能开头 常量名:习惯上常量用大写字母命名,例如"PI" 2.多行输出 转义符:反斜杠(),如果 ...

随机推荐

  1. http 3种web会话管理方式

    http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端. ...

  2. node.js 和 npm/cnpm/nrm 的安装

    node.js 和 npm/cnpm/nrm 的安装 安装 node.js.去 官网 下载,下载 LTS 版本的.安装时一路点确定,不要改动任何设置. 在 git-bash 或是 cmd 下,输入 n ...

  3. DailyRollingFileAppender-设置文件大小和备份天数

    感谢:http://byx5185.iteye.com/blog/1616034 1.重写FileAppender : package com.bankht.cis.tps.apps.tps.util ...

  4. (五)mybatis-spring的集成

    mybatis-spring的集成 源码下载(数据库使用derby,具体数据库结构参考这里) 在src下新建applicationContext.xml 配置内容:数据源.SqlSessionFact ...

  5. PyCharm 介绍、安装、入门使用

    一.Pycharm介绍 前面几年的时间,我一直用的eclipse,后面开始听同事说用IntelliJ IDEA了,而且说是目前业界最好用的java开发工具,IDE(集成开发环境),没有之一.PyCha ...

  6. 借助mkcert签发本地证书

    mkcert 是由 Filippo Valsorda 使用go语言开源的一款零配置搭建本地证书服务的工具,它可以兼容Window, Linux, macOS等多种开发平台,省去了我们自签本地证书的繁琐 ...

  7. 码海拾遗:strstr()、strcmp()和strcpy()实现

    1.strstr()实现 原型:char * strstr(const char * str1, const char * str2) 说明:判断str2是否为str1的子串,如果是则返回str2第一 ...

  8. C++ Primer Plus 学习之 类继承

    主要介绍了类的继承.虚函数.类继承的动态内存分配问题.继承与友元函数. 公有派生 基类的公有成员和私有成员都会成为派生类的一部分. 基类的私有成员只能通过基类的公有或者保护方法访问.但是,基类指针或引 ...

  9. 正则表达式之RegExp对象

    1.定义 RegExp对象是原生JavaScript中表示正则表达式的对象:是正则表达式(regular expression)的简写.有一点需要明确知道,正则表达式只能对字符串进行操作. 2.语法 ...

  10. 达拉草201771010105《面向对象程序设计(java)》第二周学习总结

    达拉草201771010105<面向对象程序设计(java)>第二周学习总结 一.理论知识学习部分          这一周我们学习的是书上第三章java的基本程序设计结构的内容,在这一章 ...