类和对象

(简单的了解一下这个概念,初步有个印象,这个概念很重要,后面会着重讲)

类:具有相同属性和方法的对象的集合;

对象:万物皆对象;

概念很抽象(每当我看不到概念的时候,我就会通过举例来理解)

我们说的数字(int)、字符串(str)以及今天学习的列表(list)就是类

list    # 类list

li = ['xhg',123,[33,'小伙郭'],'asf',854]        #li 是通过list类来创建的对象

列表

li = ['xhg',123,[33,'小伙郭'],'asf',854]

通过这个例子列表的特征:

  • 是通过中括号 [  ]  起来
  • 用逗号 , 来分割列表中的每一个元素
  • 列表中的元素可以是 数字、 字符串、 列表、 布尔值(暂时理解是所有的都可以放进去,所以啥都行)
  • List是一个类,一个类可以看成是一个集合,内部可以放置任何东西

列表的功能

1.索引取值

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]

print(li[2])

li[0]    #字符串str

li[2]    #列表 list

li[1]    #数字int

注意:索引结果的类型为该元素类型

2.切片取值

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
v = type(li[0:2])
print(v,li[0:2])

注意:切片结果的类型始终为list

3.循环(for whlie)

只要有循环,continue和break就可以用啊

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
for item in li:
print(item)

4.列表的修改

方法一:通过索引方式

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
li[1] = 456
print(li)

方法二:通过切片方式

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
li[0:2]=[11,'aaa']
print(li)

5.列表的删除

方法一:通过索引方式

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
del li[1]
print(li)

方法二:通过切片方式

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
del li[0:2]
print(li)

方法三:clear全部删除(清空列表)

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
li.clear()
print(li)

方法四:pop

  • Remove and return item at index (default last).
  • Raises IndexError if list is empty or index is out of range.
  • 删除列表中的某个值,并将该值返回
  • 可以通过索引来指定删除哪一个元素
  • 如果不设置参数,默认删除最后一个
li = ['a','qwe',123,147]
v = li.pop()
print(li,v)
li = ['a','qwe',123,147]
v = li.pop(1)
print(li,v)

方法五:remove

  • 删除列表中出现的第一个要删除的对象
  • 通过设置参数来删除元素
  • Remove first occurrence of value.

  • Raises ValueError if the value is not present.

li = ['a','qwe',123,147,123]
li.remove(123)
print(li)

列表创建可以被修改(字符串不可以字符串连续存储)

因为其存储不连续(链表存储)通过索引和切片方式进行修改、删除

6.存在in  ,not in操作

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854]
v1 = 123 in li
v2 = 'xxx' not in li
print(v1,v2)

7.取列表中所嵌套的列表里的元素

li = ['xhg',123,[33,[124,'xhg'],'小伙郭'],'asf',854,True]
print(li[2][1][1])

8.字符串《===》列表

类型a转换为类型b,可以初步理解为

b = b(a)

比如字符串类型转换为数字类型:

a = '123'
b = int(a)

字符串===》列表(把某个东西转换为列表,内部实质为使用for循环)

text = 'safklasdfl;kasdfkasd'
new_li = list(text)
print(new_li)

字符串《===列表

如果按照之间说的转换思路:

li = [123,456,'adf','qwe','xhg',147]
s = str(li)
x = type(s)
print(x,s) 执行结果: <class 'str'> [123, 456, 'adf', 'qwe', 'xhg', 147]

是把列表整体转换成一个字符串,如果我们想要去掉中括号呢?

方法一:如果列表里元素类型既有数字,又有字符串(需要自己写for循环来一个一个处理)

li = [123,456,'adf','qwe','xhg',147]
s = ''
for item in li:
s = s + str(item)
print(s)

方法二:如果列表里元素类型只有字符串,使用join即可

li = ['adf','qwe','xhg']
s = ''.join(li)
print(s)

9.append

  • 功能是追加,在原来的值得最后追加,(Append object to the end of the list.
  • 可追加各种类型的元素
li = ['adf','qwe','xhg']
li.append(5)
li.append('xxx')
li.append([123,456,'aaa'])
print(li)

10.extend

  • 功能是扩展原列表
  • 参数:可迭代对象

(不同于append追加,通过具体例子看结果来理解二者的具体不同之处)

li = ['adf','qwe','xhg']
li.extend('')
print(li)
# 执行结果
# ['adf', 'qwe', 'xhg', '1', '2', '3'] li = ['adf','qwe','xhg']
li.append('')
print(li)
# 执行结果
# ['adf', 'qwe', 'xhg', '123']

12.copy  浅拷贝

(有浅拷贝,必然会存在深拷贝,这部分知识后续会讲)

li = ['adf','qwe','xhg']
v = li.copy()
print(v)

13.count

计算列表中元素出现的次数(不加参数报错)

li = ['a','qwe','a','xhg',123,147,123,]
v = li.count('a')
print(v)

14.Index

  • 从左边开始,根据值来获取当前值索引位置,并将其索引位置返回
  • 如果该值不存在,报错
  • Return first index of value.
  • Raises ValueError if the value is not present.
li = ['a','qwe','a','xhg',123,147,123,]
v = li.index(123)
print(v)

15.insert

  • 在指定索引位置插入元素
  • 第一个参数为指定索引位置,第二个参数为插入的元素
li = ['a','qwe',123,147,123]
li.insert(1,123)
print(li) 

16.reverse

  • 当前列表进行翻转
li = ['a','qwe',123,147,123]
li.reverse()
print(li)

16.sort

  • 排序
#从小到大排序
li = [14,25,1,5,9,87]
li.sort()
print(li) #从大到小排序(对列表值进行顺序排序后,利用reverse进行翻转)
li = [14,25,1,5,9,87]
li.sort(reverse=True)
print(li)

Python小白学习之路(五)—【类和对象】【列表】【列表相关功能】的更多相关文章

  1. Python小白学习之路(四)——第一次练习题

    写在前面: 今天下雪了呢!连着两天都没有更新学习记录. 我没有偷懒呢.做了一天的练习题,昨天学的内容还没总结完,太累了就回去睡觉了 连续一周早起,强大的内心也无法支撑我疲惫的身体 今天早起做了整理.加 ...

  2. Python小白学习之路(二)—【Pycharm安装与配置】【创建项目】【运算符】【数据类型】

    写在前面: 第二天的学习,感觉比昨天学习相对轻松一些,但是对于我这个编程语言功底很弱的人来说,还是稍稍微有些.....哈尔滨的天气一天天冷了下来,还飘着小雨,不过还是挺有意境的.充实而又忙碌的生活,让 ...

  3. Python小白学习之路(十五)—【map()函数】【filter()函数】【reduce()函数】

    一.map()函数 map()是 Python 内置的高阶函数 有两个参数,第一个是接收一个函数 f(匿名函数或者自定义函数都OK啦):第二个参数是一个 可迭代对象 功能是通过把函数 f 依次作用在 ...

  4. Python小白学习之路(二十五)—【装饰器的应用】

    通过一个任务来加深对装饰器的理解和应用 回顾:装饰器的框架 def timmer(func): def wrapper(): func() return wrapper 任务:给以下正在运行的程序加一 ...

  5. Python小白学习之路(二十六)—【if __name__ =='__main__':】【用状态标识操作】

    规则一: 一个python文件中,只写一些可以运行的功能测试代码写在这句代码下面 if __name__ =='__main__': 在讲这边的时候,我不是很懂参考了一篇博客,地址如下:http:// ...

  6. Python小白学习之路(二十四)—【装饰器】

    装饰器 一.装饰器的本质 装饰器的本质就是函数,功能就是为其他函数添加附加功能. 利用装饰器给其他函数添加附加功能时的原则: 1.不能修改被修饰函数的源代码        2.不能修改被修饰函数的调用 ...

  7. Python小白学习之路(二十二)—【生成器】

    一.什么是生成器? 生成器可以理解成是一种数据类型,特殊地是生成器可以自动实现迭代器协议其他的数据类型需要调用自己内置的__iter__方法所以换种说法,生成器就是可迭代对象 !回忆:很重要的迭代器协 ...

  8. Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】

    打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...

  9. Python小白学习之路(十八)—【内置函数三】

    一.对象操作 help() 功能:返回目标对象的帮助信息 举例: print(help(input)) #执行结果 Help on built-in function input in module ...

随机推荐

  1. vue路由组件传参

    在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性. 使用 props 将组件和路由解耦: 取代与 $route 的耦合 const ...

  2. eclipse新建web项目,发布 run as 方式和 new server然后添加项目方式。 后者无法自动编译java 成class文件到classes包下。

    eclipse新建web项目,发布 run as 方式和 new server然后添加项目方式. 后者无法自动编译java 成class文件到classes包下. 建议使用run as  -  run ...

  3. python函数、装饰器、迭代器、生成器

    目录: 函数补充进阶 函数对象 函数的嵌套 名称空间与作用域 闭包函数 函数之装饰器 函数之迭代器 函数之生成器 内置函数 一.函数补充进阶 1.函数对象:  函数是第一类对象,即函数可以当作数据传递 ...

  4. iOS与PHP/Android AES128 ECB NoPadding加密

    前言 谈谈AES加密,网上有很多的版本,当我没有真正在加密安全问题前,总以为百度出来某个AES加密算法就可以直接使用,实际上当我真正要做加密时,遇到了很多的坑,原来不是拿过来就能用的.写下本篇文章,记 ...

  5. FTP中各文件目录的说明

    DirectAdmin:FTP中各文件目录的说明     当您使用FTP连上空间后,FTP列表会出现以下文件和目录: domains目录:网站文件存放目录:public_html目录:快捷目录,可以快 ...

  6. slice、substring、substr

    slice() 定义和用法 slice() 方法可从已有的数组中返回选定的元素. string.slice(start, end)提取一个字符串 string.substring(start, end ...

  7. 【转】Paxos算法3-实现探讨

    ——转自:{老码农的专栏} 前两篇Paxos算法的讨论,让我们对paxos算法的理论形成过程有了大概的了解,但距离其成为一个可执行的算法程序还有很长的路要走,原因是很多的细节和错误未被考虑.Googl ...

  8. Winfrom 嵌入word、excel实现源码

    效果图: winform中嵌入word的方法有多种:调用API,使用webBroser或使用DSOFRAMER控件: API过于繁琐: webbroser读取小文件还行,大文件就太痛苦了: 所以还是选 ...

  9. VUE(现代库) VS jquery(传统库)

      众所周知最近几年前端发展非常的迅猛,除各种框架如:backbone.angular.reactjs外,还有模块化开发思想的实现库:sea.js .require.js .webpack以及 前端上 ...

  10. x11vnc配置--ubuntu14.04

    x11vnc是连接到真实的X会话,相比vnc4server和tightvncserver自己创建不同分辨率的xserver来说,画面延时和显示效果应该要好一些.两种服务都试过,个人感觉x11vnc要好 ...