码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-10-27 19:45:33      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:迭代   text   方法   根据   ror   pop   报错   rem   删除元素   

类和对象

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

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

对象:万物皆对象;

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

我们说的数字(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)

 

只要有循环,continuebreak就可以用啊

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 = ba

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

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(123)
print(li)
# 执行结果
# [‘adf‘, ‘qwe‘, ‘xhg‘, ‘1‘, ‘2‘, ‘3‘]

 
li = [adf,qwe,xhg]
li.append(123)
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小白学习之路(五)—【类和对象】【列表】【列表相关功能】

标签:迭代   text   方法   根据   ror   pop   报错   rem   删除元素   

原文地址:https://www.cnblogs.com/guoruxin/p/9862640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!