python基础--list操作

有序列表list

一、列表的特性
1、有序的集合
2、通过偏移来索引,从而读取数据
3、支持嵌套
4、可变的类型


列表支持的方法

>>> dir(list)

>>> a= [1,2,3]
>>> a[-1]                               #从最后一个
3
>>> b=[[1,2,3],[3,4,5]] #列表可以嵌套
>>> b[1]
[3, 4, 5]
>>> b[1][1]
4
>>> b[1]=10 #原地修改列表
>>> b
[[1, 2, 3], 10]
>>> id(b)
46944392836376
>>> b[0]=5
>>> b
[5, 10]
>>> id(b)
46944392836376



二、列表的常用操作

1、切片:正向索引、反向索引、默认索引

list[x:y]表示从x开始到y之前的切片


a = [1,2,3,4,5,6,7]
>>> a = [1,2,3,4,5,6,7]
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a[0:4:1]
[1, 2, 3, 4]
>>> a[-1:-4:-1]
[7, 6, 5]
>>> a[1:]
[2, 3, 4, 5, 6, 7]
>>> a[1::2]
[2, 4, 6]


  1. >>> li  
  2. ['a''b''mpilgrim''z''example']  
  3. >>> li[-1]  
  4. 'example'  
  5. >>> li[-3]  
  6. 'mpilgrim'  
  7. >>> li  
  8. ['a''b''mpilgrim''z''example']  
  9. >>> li[1:3]   
  10. ['b''mpilgrim']  
  11. >>> li[1:-1]  
  12. ['b''mpilgrim''z']  
  13. >>> li[0:3]   
  14. ['a''b''mpilgrim']  


2、添加操作:

+: 生成一个新的列表
Extend  接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表
Append :添加任意对象到列表的末端
Insert: 插入任意对象到列表中,可以控制插入位置。

>>> a = [1,2,3]
>>> b=[4,5,6]
>>> c=a+b
>>> print c #产生一个新的列表
[1, 2, 3, 4, 5, 6]


>>> id(a)
46944392835016
>>> a.extend(b)  #原地修改列表
>>> print a
[1, 2, 3, 4, 5, 6]
>>> id(a)
46944392835016
>>> a=[1,2,3]
>>> a.append(4) #添加任意对象到列表的末段
>>> print a
[1, 2, 3, 4]
>>> a.insert(1,'ab')
>>> print a
[1, 'ab', 2, 3, 4]


3、修改,修改列表本身只需要直接赋值操作就行。
>>> A = [1,2,3]
>>> A[0]='python'
>>> print A
['python', 2, 3]
 


4、删除操作:
Del :我们通过索引删除指定位置的元素。
Remove:移除列表中指定值的第一个匹配值。如果没找到的话,会抛异常。
Pop:返回最后一个元素,并从list中删除它。

>>> a
['python', 'ab', 2, 3, 4]
>>> 
>>> del a[0]
>>> a
['ab', 2, 3, 4]
>>> a.remove(2)  #删除的是给定的value
>>> a
['ab', 3, 4]
>>> a.remove(2) #如果没找到的话,会抛异常。
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
ValueError: list.remove(x): x not in list
>>> a
['ab', 3, 4]
>>> a.pop() #默认是删除最后一个元素,也可以跟一个具体的index
4
>>> a
['ab', 3]
 
5、成员关系:
in 、not in我们可以判断一个元素是否在列表里。 
返回一个bool类型,元素在列表里返回true,否则返回fasle.

>>> a = [1,2,3]
>>> 2 in a
True
>>> 5 not in a
True


6、列表推导式:


[expr for iter_var in iterable] 
6.1 、首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
比如我们要生成一个包含1到10的列表

>>> [x for x in range(1,11)]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(1,11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


[expr for iter_var in iterable if cond_expr]


6.2、加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
要生成包含1到10的所有奇数列表。

>>> range(1,11,2)
[1, 3, 5, 7, 9]
>>> [x for x in range(1,11) if x % 2 == 1]
[1, 3, 5, 7, 9]




6.3 取出1-100的所有值的平方。

[x*x for x in range(100)]


6.4 生成字符串 

['the %s' % d  for d in xrange(10)]


6.5 生成元组 

>>> [(x,y) for x in range(2) for y in range(2)]

[(0, 0), (0, 1), (1, 0), (1, 1)]


6.6 生成字典  
>>> dict([(x,y) for x in range(3) for y in range(2)]) #后面的键会覆盖前面的键
{0: 1, 1: 1, 2: 1}


 


7、排序翻转:sort,reverse
>>> a= [33,11,22,44]
>>> b=a.sort() #直接修改原列表,返回的是一个None
>>> print b
None
>>> print a
[11, 22, 33, 44]
list的reverse函数:反转一个list, 直接修改原列表,它的返回值为none
比如上面的列表a

b = a. reverse()
print b  #输出的内容是None
>>> b=a.reverse()
>>> a  #直接看a列表变量能看到翻转的效果。
[44, 33, 22, 11]


8、内置list方法,返回一个列表,参数是可迭代对象。里面输出的内容还是保持了传入的可迭代对象的元素和顺序。如果参数为空,则返回一个空的列表

a = "asd"
list(a)
>>> a="asd"
>>> list(a)
['a', 's', 'd']
>>> list((1,3))
[1, 3]


9、xrange和range的具体区别。
9.1 xrange的用法:
xrange(开始,结束,步长)
xrange 它生成一个xrange对象。
比如:

>>> a = xrange(1,10)
>>> print type(a)
<type 'xrange'>
>>> print a[0]
1
>>> x = xrange(1,10)  #返回的是一个生成器
>>> x
xrange(1, 10)
>>> b =range(1,10) #返回的是一个列表
>>> type(b)
<type 'list'>
>>> b
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x[0]
1
>>> b[0]
1


range: 直接生成一个列表对象。
xrange: 它是生成一个xrange对象.
xrange的用法:


1、当我们需要操作一个非常大的数据,而且内存比较吃紧的时候,我们可以用xrange来操作省内存。xrange的数据是取的时候才生成,而range是一次性生成好
2、xrange一般用在循环里面,比如我们只需要操作部分数据的话,而不是返回全部元素来完成操作,推荐用xrange,效率更高。


比如:

for m in range(1000):  #[0-999]
    if m == 10:
        print 'sss'
        break
for m in xrange(1000):  #[0-10] 
    if m == 10:
        print 'sss'
        break




10、列表的引用

>>> a = ['i','am','lilei']
>>> b=a
>>> id(a)
46944392840544
>>> id(b)
46944392840544
>>> a[2]="hello"
>>> print b[2]
hello
>>> print b
['i', 'am', 'hello']
>>> del b
>>> a #删除了b的引用,a的引用还是在
['i', 'am', 'hello']




小技巧之再议删除
1、a = []
2、del a 删除列表对象的引用
3、del a[:] 清空列表对象里的元素,等价于a =[]

>>> a = ['i','am','lilei']
>>> b=a
>>> a=[]
>>> b
['i', 'am', 'lilei']
>>> del a[:]
>>> a
[]
>>> b
['i', 'am', 'lilei']
>>> a=b
>>> del a
>>> b
['i', 'am', 'lilei']


练习:


1、下面列表:
a = [1,2,3,4,5,333,11,44]
输出下面的结果:
[4,5,333]


>>> a[3:6]  # 第一个参数是闭区间、第二个参数是开区间
[4, 5, 333]
>>> a[-5:-2]
[4, 5, 333]




2、有下面2个列表
a = [1,2,3]
b = [4,5,6]


用2个方法输出下面结果:


[1,2,3,4,5,6]

>>> a+b
[1, 2, 3, 4, 5, 6]
>>> a.extend(b) #将b的内容打散插入到a中
>>> a
[1, 2, 3, 4, 5, 6]




>>> a = [1,2,3]
>>> a.append(b) #将b作为一个整体插入
>>> a
[1, 2, 3, [4, 5, 6]]


>>> a.insert(3,b) #将b作为一个整体插入
[1, 2, 3, [4, 5, 6]]


三 有下面2个列表:


a = [1,99,33,44,55,22]
b= [11,33,54]
输出结果:


1:[1,2,99,33,44,55,22,(11,33,54)]


2: [1,2,99,33,101,44,55,22]




四:用列表推导式生成100内的大于20的偶数
1
2
>>>[x for x in range(20,101) if x%2==0]
>>> range(20,101,2)


五: 已知:元组 a = (1,2,3) 利用list方法,输出下面的结果:
(1,2,4)

>>> a = (1,2,3)
>>> a=list(a)
>>> a[2]=4
>>> a=tuple(a)
>>> a
(1, 2, 4)




六: 利用列表推导完成下面习题:
1 输出结果:[1 love python,2 love python,3 love python,.... 10 love python]
1
>>> ["%s love python"  %  x  for x in range(1,11)]


2 输出结果:[(0,0),(0,2),(2,0),(2,2)]
1
2
>>> [(x,y) for x in range(0,3,2) for y in range(0,3,2)]
[(0, 0), (0, 2), (2, 0), (2, 2)]


七:
a = [1,2,3]
b = a[:]
del a
b的值是什么,为什么呢?

>>> a = [1,2,3]
>>> b=a[:]
>>> del a
>>> b
[1, 2, 3]
因为b和a指向的是不同的对象地址
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Selenium 是一套完整的web应用程序测试系统,它包含了测试的录制、编写及运行和测试的并行处理。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web 驱动程序最受Python和C#欢迎。你可以使用Python编写Selenium测试脚本,并且可以直接在大多数现代Web浏览器中运行。 如果你想在PyCharm中使用Python Selenium,你可以按照以下步骤操作: 1. 在PyCharm中新建一个Python文件,自行命名。 2. 导入selenium包,可以使用以下代码:`from selenium import webdriver` 3. 打开Firefox浏览器,可以使用以下代码:`browser = webdriver.Firefox()` 4. 如果需要等待一段时间,可以使用`time.sleep()`方法,比如停留3秒:`time.sleep(3)` 5. 最后,关闭浏览器,可以使用以下代码:`browser.quit()`[3] 这样,你就可以在PyCharm中使用Python Selenium了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [基于Python的Selenium详细教程](https://blog.csdn.net/qq_43125235/article/details/125601564)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python selenium基础用法详解](https://blog.csdn.net/m0_63794226/article/details/126447599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值