• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

PYTHON 改变世界

学海无涯,苦作舟
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

爬虫_小结01


1、python中常用的数据结构有哪些?请简要介绍一下。
列表list,元祖tuple,字典dict,字符串str,集合ser,数字int

2、简要描述python中单引号、双引号、三引号的区别。
首先,单引号和双引号在使用时基本上没有什么区别,唯一需要注意的是:当字符串中有单引号时,最好在外面使用双引号;
当有双引号时,最好在外面使用单引号。
三引号一般不常用,除了用来做注释之外,还可以用来打印多行字符串。特殊用途,是可以打印多行字符串。


3、如何在一个function里设置一个全局的变量。
在函数内部是无法定义一个全局变量的,只能做到修改已经定义的全局变量。


4、python里面如何拷贝一个对象?(赋值、浅拷贝、深拷贝的区别
(1)赋值:其实就是对象的引用。相当于C的指针,修改了其中一个对象,另一个跟着改变。
(2)浅拷贝:拷贝父对象,但是不会拷贝父对象的子对象。
(3)深拷贝:完全拷贝了父对象和子对象

总结:
(1)当对象为不可变类型时,不论是赋值,浅拷贝还是深拷贝,那么改变其中一个值时,另一个都是不会跟着变化的。
(2)当对象为可变对象时,如果是赋值和浅拷贝,那么改变其中任意一个值,那么另一个会跟着发生变化的;如果是深拷贝,是不会跟着发生改变的。


5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串?
先将custname编码格式转换为unicode,在转换为gb18030。即custname.decode('utf-8').encode('gb18030')。


6、请写出一段python代码实现删除list中的重复元素。

a = [1, 2, 3, 4, 5, 2, 3]
def fun1(a):
  a = list(set(a))
  print(a)
fun1(a)


7、这两个参数是什么意思?args和 kwargs。

*args和**kwargs主要用于函数定义
*args 是用来发送一个非键值对的可变数量的参数列表给一个函数;
**kwargs 允许你将不定长度的键值对, 作为参数传递给一个函数

8、
(1)统计如下list单词及其出现的次数。
a=['apple', 'banana', 'apple', 'tomato', 'orange', 'apple', 'banana', 'watermeton']

from collections import Counter
a = Counter(a)
print(a)


dic = {}
for i in a:
  dic[i] = dic.get(i,0) + 1
print(dic)


(2)给列表中的字典排序:例如有如下list对象: 将alist中的元素按照age从小到大排序。
alist=[{"name":"a", "age":20}, {"name":"b", "age":30}, {"name":"c", "age":25}]
alist2 = sorted(alist,key=lambda i:i["age"],reverse=False)
print(alist2)

 

 

posted on 2019-05-09 21:59  ALLEN&Y  阅读(114)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3