python基础数据类型--列表(list)

列表是我们在后面经常用到的数据类型之一,通过列表可以对数据类型进行增、删、改、查等操作

一列表的增、删、改、查

1增:

1.1增加到最后   append()

  1. li = ['alex','wusir','egon','女神','taibai']
  2. li.append('xiaoqiang')
  3. print(li)

1.2按索引位置添加 insert()

  1. li = ['alex','wusir','egon','女神','taibai']
  2. li.insert(3,'xingxing')
  3. print(li)

1.3迭代的去增加 extend()

  1. li = ['alex','wusir','egon','女神','taibai']
  2. li.extend('gaoya')#最终添加为元素
  3. print(li)

2删

2.1按索引删除    pop()

1
2
3
li = ['alex','wusir','egon','女神','taibai']
li.pop(0)
print(li)

2.2按元素删除remove()

  1. li = ['alex','wusir','egon','女神','taibai']
  2. li.remove('taibai')
    print(li)

2.3清空clear()

  1. li = ['alex','wusir','egon','女神','taibai']
  2. li.clear()
  3. print(li)

2.4直接删除del()

1
2
3
li = ['alex','wusir','egon','女神','taibai']
del li
print(li)           会报错,因为被删除了  

2.5切片删除del()

1
2
3
li = ['alex','wusir','egon','女神','taibai']
del [2:]
print(li)  

3改

3.1按索引去改

1
2
3
li = ['alex','wusir','egon','女神','taibai']
li[0]='xiaoqiang'
print(li)  

3.2按切片去改

1
2
3
li = ['alex','wusir','egon','女神','taibai']
li[0:2]='learnpython'
print(li)

4查

4.1 for循环

1
2
3
li = ['alex','wusir','egon','女神','taibai']
for in li:
    print(i)

4.2切片去查

1
2
3
li = ['alex','wusir','egon','女神','taibai']
l1 = li[0:2]
print(l1)

二、列表的排序

  1. li = [1,3,4,5,7,6,8,9,2]
  2.  
  3. li.sort() #正向排序
  4. li.sort(reverse=True)#倒向排序
  5. li.reverse() #反转
  6. print(li)

三、列表是嵌套

  1. li = ['taibai','武藤兰','苑昊',['alex','egon','89'],'23',]
  2. lan=li[1][2] #找到兰字
  3. print(lan)

四、join和split  

join()方法

S.join():其中S是字符串连接符,join中参数必须是可迭代对象,join()方法输出可迭代对象的每一个元素,并用连接符将每一个元素连接

  1. s = 'ilovepython'
  2. l = ['C','Java','C++','Ruby','PHP','Python']
  3. print('_'.join(s))
  4. # >>> 'i_l_o_v_e_p_y_t_h_o_n'
  5. print('_'.join(l))
  6. # >>> 'C_Java_C++_Ruby_PHP_Python'

split()方法

字符串和列表之间的转换

  1. s = 'i_l_o_v_e_p_y_t_h_o_n'
  2. print(s.split('_'))
  3. # >>> ['i', 'l', 'o', 'v', 'e', 'p', 'y', 't', 'h', 'o', 'n']

五、range()  

 

  1. # range:相当于都是数字的列表 [0,1,2,3,4.....,99]
  2. # range(起始值,终止值)
  3. for i in range(0,100):
  4. print(i)
  5.  
  6. # 默认起始值不写默认为0
  7. for i in range(100):
  8. print(i)
  9.  
  10. # 同索引一样,range也可以加步长,加步长的话默认的0起始值就不可以省略
  11. for i in range(0,100,2):
  12. print(i)
  13.  
  14. for i in range(100,0,-2):
  15. print(i)

六、 enumerate()方法------有索引有值

枚举----对于一个可迭代的/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时或得索引和值

  1. lst = ['python','java','c','ruby','Go']
  2. for i in enumerate(lst):
  3. print(i)

 

  1. for index, name in enumerate(lst, 1): ####---1 是起始位置,可以修改100等等
  2. print(index, name)

  

七、 深浅copy()简析 

  1. # 普通赋值运算
  2. lst_1 = ['Python','Java',['Ruby','PHP','C++']]
  3. lst_2 =lst_1 # lst_2 = lst_1[:] 同理
  4.  
  5. print(lst_1)
  6. print(id(lst_1))
  7. print('*'*10)
  8. print(lst_2)
  9. print(id(lst_2))
  10.  
  11. # >>> ['Python','Java',['Ruby','PHP','C++']]
  12. # >>> 18623368
  13. # >>> **********
  14. # >>> ['Python','Java',['Ruby','PHP','C++']]
  15. # >>> 18623368
  16.  
  17. # 浅copy()方法:第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。
  18. lst_1 = ['Python','Java',['Ruby','PHP','C++']]
  19. lst_2 =lst_1.copy() # lst_2 = lst_1[:] 同理
  20.  
  21. lst_1[2].append('new_lanuage')
  22. print(lst_1,id(lst_1))
  23. print('*'*10)
  24. print(lst_2,id(lst_2))
  25.  
  26. # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12001800
  27. # >>> **********
  28. # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12015048
  29.  
  30. # 深copy()方法:对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另一个绝对不改变。
  31. import copy
  32. lst_1 = ['Python','Java',['Ruby','PHP','C++']]
  33. lst_2 = copy.deepcopy(lst_1)
  34.  
  35. lst_1[2].append('new_lanuage')
  36. print(lst_1,id(lst_1))
  37. print('*'*10)
  38. print(lst_2,id(lst_2))
  39.  
  40. # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++', 'new_lanuage']] 12533000
  41. # >>> **********
  42. # >>> ['Python', 'Java', ['Ruby', 'PHP', 'C++']] 12533512

  

 

python基础数据类型--列表(list)的更多相关文章

  1. Python基础数据类型-列表(list)和元组(tuple)和集合(set)

    Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...

  2. python基础4 列表和元组

    一. 列表列表:python基础数据类型之一:其他语言中也有列表的概念,js 数组,可索引,可切片,可加步长li = ['hello', 100, True, [1, 2, 3], {'name':' ...

  3. Python基础数据类型-字符串(string)

    Python基础数据类型-字符串(string) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版 ...

  4. python基础数据类型考试题

    Python基础数据类型考试题 考试时间:两个半小时                      满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...

  5. python基础之列表list元组tuple

    作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7041763.html python基础之列表list元组tuple 列表li ...

  6. python 基础数据类型之list

    python 基础数据类型之list: 1.列表的创建 list1 = ['hello', 'world', 1997, 2000] list2 = [1, 2, 3, 4, 5 ] list3 = ...

  7. Python基础数据类型-字典(dict)

    Python基础数据类型-字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的每一篇都是Python3.x版本的哟 ...

  8. Python基础数据类型题

    Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...

  9. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

随机推荐

  1. HDU 5564:Clarke and digits 收获颇多的矩阵快速幂 + 前缀和

    Clarke and digits  Accepts: 16  Submissions: 29  Time Limit: 5000/3000 MS (Java/Others)  Memory Limi ...

  2. Uart学习笔记

    分享一个蛮好的链接:https://blog.csdn.net/wordwarwordwar/article/details/73662379 今天在看的资料是S家的DW_apb_uart的官方文档. ...

  3. 在PyCharm中自动添加文件头、时间日期等信息

    初次安装使用PyCharm,在新建.py文件时会发现文件头并没有什么信息,因此,使用模板会比较方便.方法如下: 1.打开PyCharm,选择File--Settings 2.依次选择Editor--- ...

  4. js对数字的处理:取整、四舍五入、数字与字符串的转换

    取整.四舍五入 向下取整Math.floor() 向上取整Math.ceil() 四舍五入Math.round()) 保留有效数位n.toFixed() 产生大于等于0小于1的随机数Math.rand ...

  5. [RoarCTF2019]forensic

    拿到raw文件拖到kali里,首先看镜像信息. volatility -f /root/mem.raw imageinfo 用建议的profile,Win7SP1x86.先查看下内存中的进程 vola ...

  6. elasticsearch mapping简单介绍

    这两天一直在看elasticsearch相关的内容,看到mapping这一块,就折腾了下. 一般情况下,我们不需要对elasticsearch的mapping进行设置,但如果希望对索引使用自定义的管理 ...

  7. Node.js之EventEmiter

    参考: 1. Node.js之EventEmiter讲解 2. Node.js之events事件 3. 在线运行node.js代码 Node.js主要API使用异步事件驱动模型,异步I/O操作完成时, ...

  8. linux系统登陆过程

    一.物理直连登陆过程 初始化进程init 会根据直接连接的字符终端设备,打开getty程序,并关联在字符终端设备上tty1/2/3/4/5/6/7....上,在不同的终端设备上提示用户输入信息,等待终 ...

  9. java并发之CopyOnWriteArraySet

    java并发之CopyOnWriteArraySet CopyOnWriteArraySet是基于CopyOnWriteArrayList实现的,持有CopyOnWriteArrayList的内部对象 ...

  10. Pytorch 分割模型构建和训练【直播】2019 年县域农业大脑AI挑战赛---(四)模型构建和网络训练

    对于分割网络,如果当成一个黑箱就是:输入一个3x1024x1024 输出4x1024x1024. 我没有使用二分类,直接使用了四分类. 分类网络使用了SegNet,没有加载预训练模型,参数也是默认初始 ...