python列表部分源码分析

1 def append(self, p_object): # real signature unknown; restored from __doc__
2         """ L.append(object) -- append object to end """
3         pass
#1、练习(添加元素):
li = [11,22,33,"aabc","cddg",234,"alex",]
print(li)
aa = li.append(78)    #在列表后添加列表元素,注意一次只能添加一个元素,否则报错
print(li)
#执行结果如下:
[11,22,33,"aabc","cddg",234,"alex",]
[11, 22, 33, ‘aabc‘, ‘cddg‘, 234, ‘alex‘, 78]
1 def count(self, value): # real signature unknown; restored from __doc__
2         """ L.count(value) -> integer -- return number of occurrences of value """
3         return 0
1 #2、练习(计算列表元素出现个数)
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 aa = li.count(33)    #计算列表中指定元素出现的个数,一次只能计算一个元素
4 print(aa)
5 #执行结果如下:
6 2
1 def extend(self, iterable): # real signature unknown; restored from __doc__
2         """ L.extend(iterable) -- extend list by appending elements from the iterable """
3         pass
1 #3、练习(列表扩展(向后))
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 li.extend("kkk")    #在列表后扩展,一次只能计算一个元素,字符串会拆分一个个显示
4 print(li)
5 li.extend(1234)     #如果扩展整型数字会报错,数字不可拆分
6 print(li)
7 #执行结果:
8 [11, 22, 33, ‘aabc‘, ‘cddg‘, 33, ‘alex‘, ‘k‘, ‘k‘, ‘k‘]
9 报错:TypeError: ‘int‘ object is not iterable
1 def index(self, value, start=None, stop=None): # real signature unknown; restored from __doc__
2         """
3         L.index(value, [start, [stop]]) -> integer -- return first index of value.
4         Raises ValueError if the value is not present.
5         """
6         return 0
1 #4、练习(找出列表元素索引位置)
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 aa = li.index(22)
4 print(aa)
5 bb = li.index(33)
6 print(bb)     #查找列表中元素的索引,重复存在则输出靠前的索引位置
7 #执行结果:
8 1
9 2
1 def insert(self, index, p_object): # real signature unknown; restored from __doc__
2         """ L.insert(index, object) -- insert object before index """
3         pass
1 #5、练习(插入元素)
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 li.insert(1,"kkk")       #根据列表下标位置,直接插入
4 print(li)
5 #执行结果:
6 [11, ‘kkk‘, 22, 33, ‘aabc‘, ‘cddg‘, 33, ‘alex‘]
1 def pop(self, index=None): # real signature unknown; restored from __doc__
2         """
3         L.pop([index]) -> item -- remove and return item at index (default last).
4         Raises IndexError if list is empty or index is out of range.
5         """
6         pass
1 #6、练习(取出元素)
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 li.pop(3)      #取出(删除)指定下标的元素
4 print(li)
5 li.pop()       #如果不输入下标,则默认取出最后一个元素,注意:超出下标范围会报错
6 print(li)
7 #执行结果:
8 [11, 22, 33, ‘cddg‘, 33, ‘alex‘]
9 [11, 22, 33, ‘cddg‘, 33]
1 def remove(self, value): # real signature unknown; restored from __doc__
2         """
3         L.remove(value) -- remove first occurrence of value.
4         Raises ValueError if the value is not present.
5         """
6         pass
1 #练习7、(移除元素)
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 li.remove(33)      #移除元素,如果有重复的,则移除靠前的那个
4 print(li)
5 #执行结果:
6 [11, 22, ‘aabc‘, ‘cddg‘, 33, ‘alex‘]
1 def reverse(self): # real signature unknown; restored from __doc__
2         """ L.reverse() -- reverse *IN PLACE* """
3         pass
1 练习8、(翻转列表)
2 li = [11,22,33,"aabc","cddg",33,"alex",]
3 li.reverse()    #翻转列表元素顺序
4 print(li)
5 #执行结果:
6 [‘alex‘, 33, ‘cddg‘, ‘aabc‘, 33, 22, 11]
1 def sort(self, cmp=None, key=None, reverse=False): # real signature unknown; restored from __doc__
2         """
3         L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
4         cmp(x, y) -> -1, 0, 1
5         """
6         pass
#练习9、(列表重新排序)
#li = [11,22,33,"aabc","cddg",33,"alex",]   报错
# li.sort()
# print(li)
aa = ["kkk","bbb","jjj","www"]     #列表按照ASCII码,重新排序,注意:列表里的元素只能全是字符串,或者全是数字,否则会报错
aa.sort()
print(aa)
#执行结果:
[‘bbb‘, ‘jjj‘, ‘kkk‘, ‘www‘]
时间: 2024-10-06 02:39:27

python列表部分源码分析的相关文章

Python 进阶之源码分析:如何将一个类方法变为多个方法?

前一篇文章<Python 中如何实现参数化测试?>中,我提到了在 Python 中实现参数化测试的几个库,并留下一个问题: 它们是如何做到把一个方法变成多个方法,并且将每个方法与相应的参数绑定起来的呢? 我们再提炼一下,原问题等于是:在一个类中,如何使用装饰器把一个类方法变成多个类方法(或者产生类似的效果)? # 带有一个方法的测试类 class TestClass: def test_func(self): pass # 使用装饰器,生成多个类方法 class TestClass: def

K-近邻算法的Python实现 : 源码分析

网上介绍K-近邻算法的例子很多,其Python实现版本基本都是来自于机器学习的入门书籍<机器学习实战>,虽然K-近邻算法本身很简单,但很多初学者对其Python版本的源代码理解不够,所以本文将对其源代码进行分析. 什么是K-近邻算法? 简单的说,K-近邻算法采用不同特征值之间的距离方法进行分类.所以它是一个分类算法. 优点:无数据输入假定,对异常值不敏感 缺点:复杂度高 好了,直接先上代码,等会在分析:(这份代码来自<机器学习实战>) def classify0(inx, data

python int的源码分析

在intobject.h中找到整数的定义 Python的整数对象的数据实际保存在ob_ival中,是c中的long类型.PyObject_HEAD就应该是整数对象的描述了.从源码的描述中知道PyObject_HEAD定义了整数对象的初始化信息 其中typedef struct _typeobject{}PyTypeObject,PyTypeObject可以被认为对象的最通用,最原始的类,被其他整数,字符串等对象继承使用. PyAPI_DATA(PyTypeObject)  PyInt_Type;

Python之namedtuple源码分析

namedtuple()函数根据提供的参数创建一个新类,这个类会有一个类名,一些字段名和一个可选的用于定义类行为的关键字,具体实现如下 namedtuple函数源码 from keyword import iskeyword as _iskeyword import sys as _sys import logging logging.basicConfig(level=logging.INFO, filename="logging.txt", filemode="w+&qu

Python编程_Selenium2Library源码分析

[Package] keywords 所有关键字封装 [Class] _waiting.py 等待函数的条件判断, 替换sleep, 在依次以条件逻辑执行较多用例时可以有效节省执行等待时间, 快速定位问题 _wait_until(self, timeout, error, function, *args) 概述: 直到function(*args)为True时return None, 为False则return error, 超时时间timeout 参数: error: 初始化为超时异常 fun

Python字典部分源码分析,字典是无序的

1 def clear(self): # real signature unknown; restored from __doc__ 2 """ D.clear() -> None. Remove all items from D. """ 3 pass 1 #练习1.清空字典(置空) 2 li = {"key1":"value1","key2":"value2"

Python之美[从菜鸟到高手]--浅拷贝、深拷贝完全解读(copy源码分析)

可悲的我一直以为copy模块是用C写的,有时候需要深入了解deepcopy,文档描述的实在太简单,还是不知所云. 比如说最近看sqlmap源码中AttribDict的_deepcopy__有些疑惑, def __deepcopy__(self, memo): retVal = self.__class__() memo[id(self)] = retVal for attr in dir(self): if not attr.startswith('_'): value = getattr(se

Python:线程、进程与协程(3)——Queue模块及源码分析

Queue模块是提供队列操作的模块,队列是线程间最常用的交换数据的形式.该模块提供了三种队列: Queue.Queue(maxsize):先进先出,maxsize是队列的大小,其值为非正数时为无线循环队列 Queue.LifoQueue(maxsize):后进先出,相当于栈 Queue.PriorityQueue(maxsize):优先级队列. 其中LifoQueue,PriorityQueue是Queue的子类.三者拥有以下共同的方法: qsize():返回近似的队列大小.为什么要加"近似&q

zg手册 之 python2.7.7源码分析(2)-- python 的整数对象和字符串对象

python 中的内置对象 python 中常用的内置对象有:整数对象,字符串对象,列表对象,字典对象.这些对象在python中使用最多,所以在实现上提供缓存机制,以提高运行效率. 整数对象 (PyIntObject) python 中的整数对象是不可变对象(immutable),即创建了一个 python 整数对象之后,不能再改变该对象的值. python 为创建整数对象提供了下面三种方法,其中 PyInt_FromString 和 PyInt_FromUnicode 内部也是调用 PyInt