字符串取值不好取

数组,存在编号,易于取值,(list array)

1、list 定义:name=[]   由中括号定义数组,例如name=['jyj','ws','jyt','js']

2、list取值: 下标 角标 索引, 从0 开始,最后一个元素下标为-1,即左边从0开始,右边从-1开始,

例如:

name=['jyj','ws','jyt','js']

print(name[2])      #即可取出第2个元素“jyt”

2即为 下标、角标、索引,只是不同叫法

只要知道下标即可取到对应值

3、增删改查

  增加:

  a、 append()   在list 末尾进行增加; 例如:name.appentd('贾宝玉')          #即在list 末尾增加一个值

  b、insert()  在指定位置增加元素,例如name.insert(0,'薛宝钗')              #即在第一个位置添加,如果下标不存在时,则在最后插入,当下标=-1时 ,结果会错误

  修改:

  a、name[0]='Alex'    #想改哪个值时,即找到对应值下标,直接赋值修改即可

  查看:
  print(name)     #查看全部

  print(name[0])    #查看指定元素

  print(name.count('jyj'))  #查看由几个jyj

  print(name.index(''))    #查找这个元素的下标,如果多个返回第一个,不存的元素时会报错

  删除:

  name.pop()    #默认删除最后一个元素,传值为下标,如果指定下标,则删除指定元素,且指定下标必须存在,否则报错,pop删除时存在返回值,即把删除的返回

  name.remove(‘’)  #默认删除指定元素,传值为元素,多个重复元素时只能删除第一个,删除时不存在返回值,remove容易造成循环错乱

  del name[0]    #删除哪个 则输入下标

  name.clear()    #清空整个list

  反转:

  name.reverse()  #反转整个list

  排序:

  name.sort()    #排序,默认为升序,如果降序则name.sort(reverse=True)

4、多维数组

  all_name=[123,456,[1,4,8]]      二维数组

  three=['we','we','cd',['dc',['nh','mn']]]   三维数组

  多维数组取值:print(three[3][1][0])    即可取到nh

  all_name.extend(three)    合并两个数组 

5、list循环和切片

  循环:b=['haha','hhehe','heihei']

     for bi in b:

      print(bi)      #如果直接for循环一个list时,则 每次循环的值都是这个list的元素

  切片: list 取值方法,从某下标取到另一个下标;切片同样适用于字符串,注意的是 切片顾头不顾尾,即包含开头步包含结尾

  例如: name=['jyj','ws','jyt','js']

   存在步长: print(name[s:e:n]) 即从下标s开始 逢n取1,截止到下标e的元素结束;当s为空则默认从头开始取,n为空则默认逢1取1,,步长是正数从左往右取(下标为正数),为负数则从右往左取(则下标也应该是负数)

   不存在步长: print(name[s:e]) 即从下标s开始取到下标e元素结束,但是顾头部顾尾,s为空时,默认从头开始,e为空则默认取到结尾

  news_name=[]

  news_nage=name[2:3]

  切片同样适用于字符串,字符串也存在下标:

  例如:title='你好吗,哈哈'

  print(title[3])

  enumerate    #可以同时取到下标和值

  例如:

  for i,t in enumerate(hh):

    print('%s: %s'%(i,t))

6、小练习

  注册的小功能练习。死循环 一直注册, 如果username,已经存在的话 需要提示usernames=[]

while True:
  username=input('请输入用户名:')
  password=input('请输入密码')
  if usernames.count(username)==0: #判断字符串在list的个数
    print('注册成功')
    usernames.append(username)
  else:
    print('该用户名已存在') 7、非空即真,非零即真
a='' #空
a=0 #零

if a:
print('true')
else:
print('false')


8、深浅拷贝

   li2=li[:]       #深拷贝,内存地址发生变化

   il2=li      #浅拷贝,这么赋值的分配的内存地址与li一样所以删除li也会变化。

9、列表推导式:可简化代码

#列表推导式
nums=[0,1,3,4,5,6,7]      #把这个元素变为字符串形式['0','1',....]
new_nums=[str(n)for n in nums]
print(new_nums)
 

python-list操作的更多相关文章

  1. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  2. Python 字符串操作

    Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...

  3. Python目录操作

    Python目录操作 os和os.path模块os.listdir(dirname):列出dirname下的目录和文件os.getcwd():获得当前工作目录os.curdir:返回但前目录('.') ...

  4. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  5. Python list 操作

    创建列表sample_list = ['a',1,('a','b')] Python 列表操作sample_list = ['a','b',0,1,3] 得到列表中的某一个值value_start = ...

  6. Python Mongo操作

    # -*- coding: utf-8 -*- ''' Python Mongo操作Demo Done: ''' from pymongo import MongoClient conn = None ...

  7. python数据库操作之pymysql模块和sqlalchemy模块(项目必备)

    pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1.下载安装 pip3 install pymysql 2.操作数据库 (1).执行sql #! ...

  8. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  9. python excel操作总结

    1.openpyxl包的导入 Dos命令行输入 pip install openpyxl==2.3.3 这里注意一下openpyxl包的版本问题 版本装的太高有很多api不支持了,所以笔者这里用的是2 ...

  10. python/ORM操作详解

    一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...

随机推荐

  1. struts2 学习01

    知识补充: Java 平台有三个版本,这使软件开发人员.服务提供商和设备生产商可以针对特定的市场进行开发: * Java SE(Java Platform,Standard Edition).Java ...

  2. Qt-c++桌面编程报错:qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "",已解决

    语言:c++ 编译库:Qt GUI,qt5.12.1 软件类型:Qt application,qt桌面软件 运行平台:window 10 ?按照[https://www.devbean.net/201 ...

  3. python单元测试框架unittest总结

    unittest.TestCase:TestCase类,所有测试用例类继承的基本类. class BaiduTest(unittest.TestCase): TestCase类的属性如下: setUp ...

  4. JSP项目前端优化

    问题:在谷歌浏览器中兼容问题,在点击超链接第一次会跳到头部,第二次点击才能打开的问题. 解决方案:是href的问题,删除href的属性,使用click事件,并添加a的超链接样式. #othera{ c ...

  5. MySQL5.7 关键字和保留关键字

    来源:https://dev.mysql.com/doc/refman/5.7/en/keywords.html 标有(R)的为保留关键字. A ACCESSIBLE (R) ACCOUNT; add ...

  6. golang slice 经典例题

      arr := [...],,,,,,,,} s1 :=arr[:] s2 :=arr[:] s1=? //2,3,4,5 s2=? // 5,6 package main import " ...

  7. 1到n的最小步数

    1到n的最小步数 Time Limit: 1 Sec  Memory Limit: 128 MB 给你一个数n,让你求从1到n的最小步数是多少. 对于当前的数x有三种操作: 1:  x+1 2:  x ...

  8. javafx由浅到深的 认识(一)

    javafx是一款比较新兴的语言框架,随着javafx越来越实用,估计许多程序员也会慢慢接触它,故我在这里对它由浅到深进行介绍一下. 首先,要了解javafx,就应该先知道.xml文件的布局软件,以往 ...

  9. Angular6 用户自定义标签开发

    参考地址:https://www.jianshu.com/p/55e503fd8307

  10. Java是值传递还是引用传递?

    Java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题.这个问题一般是相对函数而言的,也就是Java中所说的方法参数,那么我们先来回顾一下在程序设计语言中有关参数传递给方法的两 ...