Python3 一些坑

关于PIP install

运行CMD用pip装模块的时候,如果提示需要升级pip,则打开运行程序的位置,用管理员模式进命令提示符,解决。

csv的writerow()写入

如果发现,写入的数据有很多空格在,那是因为方法用错了:

正确用法:writer.writerow([files['sku_name']])
错误用法:writer.writerow(files['sku_name'])
解释:少了中括号 [] 会造成错误

CSS选择器

参考:http://www.w3school.com.cn/cssref/css_selectors.asp
一个有趣的练习网站:http://flukeout.github.io/#
(动画演示,很直观)

不要使用和方法同名的变量名

比如下面这段代码:

from functools import reduce

list = [1, 2, 3, 4, 5, 6]
print(list(map((lambda x: x * 2), list)))

list与list()方法重名,造成冲突,改一下变量名即可

Redis

用命令行运行 redis-dump 报错,“No such file…"
解决:

打开 r"Ruby25-x64\lib\ruby\gems\2.5.0\gems\redis-dump-0.4.0\lib\redis\dump.rb", 将第32行 “ps -o rss= -p #{Process.pid}.to_i # in kb” 用 # 注释掉,保存即可

引用链接:https://segmentfault.com/q/1010000014867842

List(‘str’)

用list()方法可以将一串字符串转为list,并且自动spilt():

IN:list('abcd 最新资讯')
OUT:['a', 'b', 'c', 'd', ' ', '最', '新', '资', '讯']

enumerate()

可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

IN:
for i, value in enumerate(['A', 'B', 'C']):
    print(i, value)
OUT:
0 A
1 B
2 C

isinstance()

判断一个变量是否是某种格式

IN:
x = 'abc'
y = 123
z = 12.2
print(isinstance(x, int))
print(isinstance(x, str))
print(isinstance(y, int))
print(isinstance(y, str))
print(isinstance(z, float))

OUT:
False
True
True
False
True

Iterable与Iterator

Iterable

可以直接作用于for循环的数据类型有以下几种:

一类是集合数据类型,如 list、tuple、dict、set、str 等;
一类是generator,包括生成器和带 yield 的 generator function 。

这些可以直接作用于for循环的对象统称为可迭代对象:Iterable

Iterator

生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。

可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。

把list、tuple、dict、set、str 等Iterable变成Iterator可以使用iter()

map(), reduce(), filter(), sorted()

map()函数

接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

reduce()函数

把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,返回一个Iterator

filter()函数

接收一个函数和一个序列。filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素,返回一个Iterator

sorted()函数

可以对list进行排序,
'key= ’ key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序

IN:
sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
OUT:
['Zoo', 'Credit', 'bob', 'about']

来自:廖雪峰 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318230588782cac105d0d8a40c6b450a232748dc854000
感谢

Mongodb自带的Export导出至CSV格式问题

导出正常,但是用EXCEL打开出现乱码,属于编码问题。
解决:
现打开一个新的EXCEL,然后从文本导入,选择UTF-8编码,逗号分隔符,解决。

来自: https://www.2cto.com/net/201609/547338.html
感谢

字典增加键值对

update()函数

s = {‘AAA’: 123}
d = {‘EEE’: 254}
s.update(d)

IN: print(s)
OUT: {‘AAA’: 123, ‘EEE’: 254}

猜你喜欢

转载自blog.csdn.net/m0_37979936/article/details/83828244