引言

想学爬虫还是 python 专业啊,之前一直在用 java, 现在决定尝尝鲜,使用 python及爬虫框架来完成网络数据采集。

编程语言之间都是相通的,比如都需要模块化,引入其他文件来实现功能,使用列表等容器来处理数据,都要使用 json 或 xml 来解析和传输数据。

你会发现通过 类比 的方式,带着问题去学习,你会发现走的很快

而且我认为代码示例的作用是 异常强大的, 我会尽量使用代码示例的方式来展示,以满足同学快速学习的需要,也备后续查询。

下面就是在 使用 python 过程中的问题总结,okay,让我们一起来历险吧~

String 有哪些有用的方法?

不管是哪种语言,用的最多的类型估计都是 string (字符串),要想快速入门 python, 掌握 string 也是必须的。

在 java 中使用最多的 string 功能,我也会带着同样的疑问来了解 python 该使用什么方法实现。如果这里没有你要找的方法,可以到 python string 官方地址完整方法去查询

如何拼接字符串?

  • 使用 + 号来拼接,要注意的是,当有数字的时候一定要转化为字符串格式 str(value) 才能够相加,不然会报错。
  • 使用%进行拼接,和占位符的概念比较类似,这里举个栗子
hour = 9
minutes = 45
print('it\'s %d:%d minutes!' %(hour, minutes))

如何分隔字符串?

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 对字符串分割
split_str = 'a-b-c-d'
print(split_str.split('-'))

如何获取字符串长度

# 获取字符串的长度
print(len('banana'))

如何将 list 拼接成字符串?

# 以 - 做间隔,拼接字符串
join_str_list = ['a', 'b', 'c', 'd']
print('-'.join(join_str_list)) # 这里就是用 - 拼接后的值

如何替换字符串?

 str.replace(old, new[, count])

count 表示替换的次数,如果没有指定,则只会替换第一个遇到的

如何去除字符串中的空格?

去除字符串中空格分为 3 种

  • 去除两端的空格
  • 去除左边的空格
  • 去除右边的空格
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# 去除字符串中的空格
strToStrip = '   abc   '
print(strToStrip.strip()) # 去除两端空格
print(strToStrip.lstrip()) # 去除左边空格
print(strToStrip.rstrip()) # 去除右边空格

如何子字符串是否包含在父字符串中?

child_str = 'abc'
print('abcd'.find(child_str)) # 如果存在就返回首字母下标,不存在返回 -1

python 有哪些有用的容器?

学过 java 的都知道,在 java 中使用最多的容器有 List, Map, Set, Array,这些容器可以让我们方便的存储并操作数据,那么 python 中又有哪些类似的容器可供我们使用呢?

列表 list
python 中也有列表,功能包含了 java 列表,而且更牛的是它可以 包含不同类型的元素

['a', 10, 1.5] # 这就是一个列表,只需要方括号包起来即可

如何遍历一个列表

有两种方式可实现

  • for 循环的方式,这当然是最常见的
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
list = ['a', 1, 1.4]for item in list:print(item)

在只需要读取列表的元素本身时这种方式当然很优雅。但如果需要获取元素的下标,就力不从心了,这就需要下面的方式。

  • 使用内置函数 range 和 len, 操作元素下表
list = ['a', 1, 1.4]
for i in range(len(list)):list[i] = list[i] * 2print(list[i])

如何对列表切片?

pyton 中专门有切片操作符 :, 想切多厚切多厚,这可比 java 要方便不少。
通过例子来感受下吧。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
alpha_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(alpha_list[1:3]) # ['b', 'c']
print(alpha_list[:4]) # ['a', 'b', 'c', 'd']
print(alpha_list[2:]) # ['c', 'd', 'e', 'f', 'g']
print(alpha_list[:]) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']

如何给列表添加元素?

有四种方式

  • 在列表尾部添加元素 append(value)
  • 将一个列表中的每个元素分别添加到另一个列表上 extend(list)
  • 将一个元素插入到列表的指定位置 insert(index, value)
  • +号,将两个 list 直接相加, 会返回一个新的 list 对象

码字太多了,自己都晕了,直接上代码。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
list1 = ['a', 'b', 'c', 'd']
list1.append('e')
print(list1) # ['a', 'b', 'c', 'd', 'e']list2_1 = ['a', 'b', 'c', 'd']
list2_2 = ['e', 'f', 'g']
list2_1.extend(list2_2)
print(list2_1) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']list3 = ['a', 'c', 'd']
list3.insert(1, 'b') # ['a', 'b', 'c', 'd']
print(list3)# 内存多余消耗,不推荐
list4_1 = ['a', 'b']
list4_2 = ['c', 'd']
print(list4_1 + list4_2) # ['a', 'b', 'c', 'd']

删掉元素

也有几种方法可实现

  1. 修改列表,弹出被删除的值 pop(index)
  2. 知道要删除的元素时 remove(value)
  3. 不需要使用删除的值时 del(index)
  4. 删除多个值 del(index_begin, index_end)

上代码

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
remove_list_1 = ['a', 'b', 'c']
print(remove_list_1.pop(0))
print(remove_list_1)# ['b', 'c']remove_list_2 = ['a', 'b', 'c']
del remove_list_2[1]
print(remove_list_2)# ['a', 'c']remove_list_3 = ['a', 'b', 'c']
remove_list_3.remove('b')
print(remove_list_3) # ['a', 'c']remove_list_4 = ['a', 'b', 'c']
del remove_list_4[1:2]
print(remove_list_4)# ['a', 'c']

字典 dict

dict 和 java 中 Map 非常类似,也是由 key 和 value 组成的,也是
使用 散列表 的算法存储, 用过 java 的同学就直接把它当做 Java HashMap 来用就可以啦。另外,在语法上要比 java 也要简洁不少。

创建 dict 添加元素

a_dict = dict() # 这样就创建了一个空字典
a_dict['one'] = 1 # 塞进去一个元素not_empty_dict = {'one': 1, 'two': 2, 'three': 3} # 这是一个包含数据的字典

遍历 dict

使用 for 循环遍历所有字典,可以遍历字典中的 key,这样的遍历是没有特定顺序的,如果想按照顺序遍历需要使用内置函数 sorted

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
d = {'b': 2, 'a': 1, 'c': 3}for item_key in d:print(item_key, d[item_key])for item_key in sorted(d):print(item_key, d[item_key])

那我如果想要遍历 dict 中的 values 呢?

还真有一个方法叫 values(), 它会返回一个值集合,并可以应用 in 操作符遍历

d = {'b': 2, 'a': 1, 'c': 3}for value in d.values():print(value)for sorted_value in sorted(d.values()):print(sorted_value)

元组

什么是元组? java 中可没有听过内置元组这样的数据结构。

在前面已经讲了列表,知道一个列表可以存储多个数据结构。元组和列表很像,但要记住它们间的一个重要区别: 元组是不可变的。

如何创建元组?

  1. 把各个类型的元素用逗号分隔,就可以得到一个元组,为了好看,常常用括号再围起来
  2. 使用内置函数 tuple() 也可以创建元组

注意,由于元组是不可变的,无法修改它的元素。但我们可以使用将多个元组结合成一个新的元组。(元组也支持 +)

tuple_a = 1, 2, 3, 4, 5tuple_b = (1, 2, 3, 4, 5)
# tuple 内置函数的参数必须是一个序列
tupe_c = tuple('12345') # 字符串
tuple_e = tuple([1, 2, 3, 4, 5]) # 列表
tuple_f = tuple((1,2,3,4,5)) # 元组tuple_d = tuple_a + tuple_b
print(tuple_d)

元组有什么用?

既然 python 中有这么个数据结构,自然就有它的用武之地。还别说,它的用途还真不少。

  • 交换变量 和 对多个变量赋值 更方便,优雅了
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:579817333
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a = 5
b = 4
a,b = b,a
# 等式左边是一个变量的元组
# 等式右边是表达式的元组,可以是(字符串,列表,元组都行)c,d = (1,2), [1,2,3]
print(c)
print(d)
  • 可以在函数中返回多个值,将它们装到元组里就行
def min_max(list):return min(list), max(list)num_list = [3, 1, 5, 2]
print(min_max(num_list))

其他

上面讲述的都是一些大的主题,除了这些,还有一些相对小些的。
虽然小,但也很重要。这些小且重要的部分都在这个部分存放吧。

全局变量是如何处理的?

我们知道 java 中由于变量类型的存在,可以在一个 class 内声明全局变量,从而在 class 的各个方法中读取和赋值。

而这点在 python 中却是行不通的,因为 python 中没有变量类型, 如果在文件中声明一个全局变量,再在函数内对这个变量赋值,会直接导致错误产生。这是因为在函数内又重新创建了一个局部变量。读取全局变量也有这个问题。

那该怎么办呢?嗯~o( ̄▽ ̄)o global 关键字就要登场了。

在函数内部,使用全局变量前,先用 global 关键字声明下这个变量,表示这个变量是全局变量,后面再使用就 okay啦。

上栗子…

g_variable = 3def test_g_variable():global g_variableprint(g_variable) # 3g_variable = 2print(g_variable) # 2test_g_variable()

python 的String,集合(List,元组,Dict)相关推荐

  1. python中列表和集合_15个例子掌握Python列表,集合和元组

    Python中的一切都是对象.每个对象都有自己的数据属性和与之关联的方法.为了有效和恰当地使用一个对象,我们应该知道如何与它们交互. 列表.元组和集合是三种重要的对象类型.它们的共同点是它们都被用作数 ...

  2. python字符串/列表/集合/字典/元组应用

    #字符串 str # str='1234567898' # str1='abcdefga' # str2='Abcdefg' # str3='ABCDEFG' #print(str1.title()) ...

  3. 学习Python(5)排序tuple元组dict字典set集合

    目录 学习Python(5)排序&tuple元组&dict字典&set集合 排序 冒泡排序 选择排序 元组 创建元组 元组元素的访问 元组操作 元组功能 二维元组 字典 创建字 ...

  4. Python学习第七课-元组字典集合

    Python学习第七课-元组&字典&集合 一.元组 1.1元组简介 1.2元组的拆包 1.3字符串拆包 1.4列表的拆包 1.5拆包练习 二.字典的简介 2.1介绍 2.2操作 三.字 ...

  5. 04.Python基础_列表_元组_字典_集合

    文章目录 1.列表 1.1list 2.列表的索引和切片 练习1 提取数据 练习2 用索引取出下面list的指定元素: 3.修改列表的元素值 4.列表的常用方法 4.1append添加元素(与exte ...

  6. python总结字典集合列表_python 列表,元组,字典,集合,字符串相互转换

    本文主要介绍列表,元组,字典,集合以及和字符串之间的相互转换. 1. 列表与元组的互换 # 将列表转化为元组 li = [1, 2, 3] t = tuple(li) print(t, type(t) ...

  7. python集合和列表、安从小到大的顺序组合成一个字典_第3章 Python容器:列表、元组、字典与集合...

    3.1 列表和元组 除字符串外,Python 还有另外两种序列结构:元组和列表.它们都可以包含零个或多个元 素.与字符串不同的是,元组和列表并不要求所含元素的种类相同,每个元素都可以是任 何 Pyth ...

  8. python元组读取到列表_Python 学习笔记(1)Python容器:列表、元组、字典与集合...

    Python容器:列表.元组.字典与集合 列表: 1.列表 的创建 使用[ ] 或者list()创建列表:empty_list = [ ] 或者 empty_list= list() 使用list() ...

  9. 第三章 Python容器:列表、元组、字典与集合

    3.1 列表和元组 除字符串以外,Python还有另外两种序列结构:元组和列表.他们都可以包换0个或多个元素,元组并不要求所含元素的种类相同,每个元素可以是各种类型的Python对象. 元组是不可变的 ...

  10. Python基础语法七:元组字典和集合

    1.元组 1.什么是元组 元组是不可变的列表(不支持增删改的操作),元组是有序的(支持下标操作) 元组是容器型数据类型,将()作为容器的标志,多个元素之间用逗号,隔开 元组中的元素的要求和列表一样 1 ...

最新文章

  1. 【Docker】Ubuntu18.04国内源安装Docker-准备工作(一)
  2. Spartan-6的时钟资源、全局时钟缓冲器/多路复用器
  3. python日历gui_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...
  4. android服务的说法错误的是,下面关于Android开发描述有误的一项是()。
  5. 线上分享 | 浅谈中台对产品经理的价值
  6. JDK8 指南(译)
  7. HDU 2571 命运
  8. IDE:Eclipse查看Servlet源码
  9. shell脚本之shellcode自动提取工具
  10. 软件测试实用技术与常用模板:内容提要
  11. C#调用天气查询服务
  12. Adobe Acrobat Reader离线安装包下载
  13. dev万能头文件_超级好用的C++万能头文件
  14. java uml类图虚线实线_时序图的实线和虚线-类图中的实线与虚线-用例图中实线箭头表示什么...
  15. SA-LOAM:具有语义辅助的回环检测LOAM系统
  16. ppt导出1000dpi的图
  17. VMware ESXi 7.0 正式版vSphere7.0官方原版ISO和离线定制包附加vcsa套件
  18. 用Python的Seaborn库绘制17个超好看图表
  19. MySQL中的聚簇索引、非聚簇索引、联合索引和唯一索引
  20. 虚假发货的定义,虚假发货的情形有哪些,虚假交易的处罚

热门文章

  1. Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion问题
  2. BACKUP PENDING状态的解除
  3. SummerTree 的实验室
  4. 正则表达式学习笔记(一)
  5. 启用ISA Server的缓存
  6. 【基础】ABAP不同变量类型之间数值大小比较
  7. CNZZ数据专家使用方法?
  8. 关于FI凭证的字段状态
  9. SAP Basis如何显示SAP中所有用户列表
  10. SAP 生产订单结算