【1.10】数据类型的魔法--列表

列表的魔法

1、列表是可以修改的 它是按照链表的方式进行存储的 元素本身的地址+元素本身+下一个元素的地址

2、list 可以进行 index 访问 和切片 for、 while 都可以访问,取值

3、[,] ,可以嵌套多种类型的数据类型

4、删除 clean del pop remove split strip

5、可迭代对象,占时认为是能进行for循环的 数据类型

 str list   可以迭代     但是str 不能被修改 list 能被修改

 int 不能被迭代  不能被for 循环  也不能转成list 

str 转换时 ,会将list 整体作为字符串进行转换

列表中,有数字 有字符串,要进行转换为字符串时, 可以使用for 循环  取出来  相加

但列表中,只字符串时,直接可以使用      “”.jion  进行相加

a = ["china","ren"]
a = "".join(a)
print a

6、in 以及 not in 可以判断元素是否存在在列表里面

7、replace 是字符串中的替换,因为 字符串 无法改变自身的值

所以要replace 相当于修改

但是list 就不用 可以用index 取值后,再赋值 就相当于修改 替换

def append(self, p_object): # real signature unknown; restored from __doc__
    """ L.append(object) -- append object to end """
    pass

添加元素 只能添加一个元素,而且 添加的元素只能在 列表的尾部

a = [1,"1","2",1]

a.append([1564,"abc"])
print a

def count(self, value): # real signature unknown; restored from __doc__
    """ L.count(value) -> integer -- return number of occurrences of value """
    return 0

计算列表中, 该元素的个数

a = [1,"1","2",1]

a.append([1564,"abc"])
print a

coun = a.count(1)
print coun

def extend(self, iterable): # real signature unknown; restored from __doc__
    """ L.extend(iterable) -- extend list by appending elements from the iterable """
    pass

扩展元素 这里面的参数 iterable 是说参数要可迭代,如list str ,就是要能够 进行 for 循环的

a = [1,"1","2",1,[1564,"abc"]]
a.extend("123")

插入元素 如果是“123”,就是将字符串分成单一字符进行插入

print a

[1, '1', '2', 1, [1564, 'abc'], '1', '2', '3']

a = [1,"1","2",1,[1564,"abc"]]
a.extend([1,2,3,])

插入元素 如果是列表,就是分成将列表取出来后再进行的单一的元素插入

print a

[1, '1', '2', 1, [1564, 'abc'], '1', '2', '3']

a = [1,"1","2",1,[1564,"abc"]]
a.extend((1,2,3))

插入元素 如果是元组,就是分成将元组取出来后再进行的单一的元素插入

print a

[1, '1', '2', 1, [1564, 'abc'], '1', '2', '3']

a = [1,"1","2",1,[1564,"abc"]]
a.extend({"name":"key","age":18,"id":1})

插入元素 如果是字典,就是分成将字典的key取出来后再进行的单一的元素插入,key对应的值不能插入

print a

[1, '1', '2', 1, [1564, 'abc'], 'age', 'name', 'id']

def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
    """
    L.index(value, [start, [stop]]) -> integer -- return first index of value.
    Raises ValueError if the value is not present.
    """
    return 0

取值:

a = [1,"1","2",1,[1564,"abc"]]

print a[1]
print a[1:4]
print a[2:-2]

1

['1', '2', 1]

['2']

def insert(self, index, p_object): # real signature unknown; restored from __doc__
    """ L.insert(index, object) -- insert object before index """
    pass

插入元素:
a = [1,"1","2",1,[1564,"abc"]]
a.insert(2,"abc")

这个插入就不是将要插入的元素取出来再插入 ,而是整体插入

print a

[1, '1', 'abc', '2', 1, [1564, 'abc']]

a = [1,"1","2",1,[1564,"abc"]]
a.insert(2,[123,"sdfa"])

这个插入就不是将要插入的元素取出来再插入 ,而是整体插入

print a

[1, '1', [123, 'sdfa'], '2', 1, [1564, 'abc']]

a = [1,"1","2",1,[1564,"abc"]]
a.insert(2,(1,2,"abc"))

这个插入就不是将要插入的元素取出来再插入 ,而是整体插入

print a

[1, '1', (1, 2, 'abc'), '2', 1, [1564, 'abc']]

a = [1,"1","2",1,[1564,"abc"]]
a.insert(2,{"name":"key","age":18})

这个插入就不是将要插入的元素取出来再插入 ,而是整体插入

print a

[1, '1', {'age': 18, 'name': 'key'}, '2', 1, [1564, 'abc']]

def pop(self, index=None): # real signature unknown; restored from __doc__
    """
    L.pop([index]) -> item -- remove and return item at index (default last).
    Raises IndexError if list is empty or index is out of range.
    """
    pass

pop出来列表中的元素

a = [1,"1","2",1,[1564,"abc"]]
b = a.pop(2)

pop 就是将元素取出来,相当于删除原列表的元素,并将取出来的元素赋值给新的变量

只能取出来一个 index 的 元素

默认是将 最后一个 index 取出来,index 不存在就什么也不取出来 并报错 后面的语句也不执行

print a
print b

[1, '1', 1, [1564, 'abc']]

2

def remove(self, value): # real signature unknown; restored from __doc__
    """
    L.remove(value) -- remove first occurrence of value.
    Raises ValueError if the value is not present.
    """
    pass

a = [1,"1","2",1,[1564,"abc"]]
b = a.remove("😊

移除 功能 只是移除将该值移除列表 返回None

若 该值不存在,就报错

print a
print b

['1', '2', 1, [1564, 'abc']]

None

def reverse(self): # real signature unknown; restored from __doc__
    """ L.reverse() -- reverse *IN PLACE* """
    pass

反转功能:

a = [1, "1", "2", 1, [1564, "abc"]]
b = a.reverse()
print b
print a

None

[[1564, 'abc'], 1, '2', '1', 1]

翻转功能 ,将列表中的元素的顺序 翻转

def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__
    """
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
    cmp(x, y) -> -1, 0, 1
    """
    pass

reverse 反转功能,true就是反转, False就是不反转

排序功能,看起来简单 sort中的 reverse 默认False 就是升序 True 就是反 降 序

但是这里面有很多功能要学习 sorted()函数它不改变原来可以迭代对象的值,而是返回排序后的值
还要学习 cmp key

py3 中才有这样的功能:

copy 就是复制 列表 将 a 列表 复制给 b列表

这个是 浅 拷贝 以后还有 深 拷贝

a = ["123",123,1,"abc"]
b = a.copy()

clear 清空列表
a = ["123",123,1,"abc"]
a.clear()

a 现在就是空列表 [ ]

index 方法

a = ["china","ren"]
b = a.index("ren")
print b

这里的index 可以有三个参数,找到指定值在指定区间的位置
默认是列表的所有范围
找指定值出现区间里面的第一次出现的位置 从左边开始的

a = ["china","ren",1,32,"acd","wrwe"]
b = a.index("acd",2,-1)
print b

posted @ 2016-03-01 10:47  科学小怪癖  阅读(117)  评论(0)    收藏  举报