python 关键字field

可迭代对象


mylist 是一个可迭代的对象。当你使用一个列表生成式来建立一个列表的时候,就建立了一个可迭代的对象:

>>> mylist = [x*x for x in range(3)]
>>> for i in mylist :
...    print(i)
0
1
4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里,所有的值都存在内存当中,所以并不适合大量数据

生成器


  • 可迭代
  • 只能读取一次
  • 实时生成数据,不全存在内存中
 >>> mygenerator = (x*x for x in range(3))
>>> for i in mygenerator :
...    print(i)
0
1
4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

注意你之后不能再使用for i in mygenerator

yield关键字


  • yield 是一个类似 return 的关键字,只是这个函数返回的是个生成器
  • 当你调用这个函数的时候,函数内部的代码并不立马执行 ,这个函数只是返回一个生成器对象
  • 当你使用for进行迭代的时候,函数中的代码才会执行
>>> def createGenerator() :
...    mylist = range(3)
...    for i in mylist :
...        yield i*i
...
>>> mygenerator = createGenerator() # create a generator
>>> print(mygenerator) # mygenerator is an object!
<generator object createGenerator at 0xb7555c34>
>>> for i in mygenerator:
...     print(i)
0
1
4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

第一次迭代中你的函数会执行,从开始到达 yield 关键字,然后返回 yield 后的值作为第一次迭代的返回值. 然后,每次执行这个函数都会继续执行你在函数内部定义的那个循环的下一次,再返回那个值,直到没有可以返回的。

控制生成器的穷尽


>>> class Bank(): # let's create a bank, building ATMs
...    crisis = False
...    def create_atm(self) :
...        while not self.crisis :
...            yield "$100"
>>> hsbc = Bank() # when everything's ok the ATM gives you as much as you want
>>> corner_street_atm = hsbc.create_atm()
>>> print(corner_street_atm.next())
$100
>>> print(corner_street_atm.next())
$100
>>> print([corner_street_atm.next() for cash in range(5)])
['$100', '$100', '$100', '$100', '$100']
>>> hsbc.crisis = True # crisis is coming, no more money!
>>> print(corner_street_atm.next())
<type 'exceptions.StopIteration'>
>>> wall_street_atm = hsbc.create_atm() # it's even true for new ATMs
>>> print(wall_street_atm.next())
<type 'exceptions.StopIteration'>
>>> hsbc.crisis = False # trouble is, even post-crisis the ATM remains empty
>>> print(corner_street_atm.next())
<type 'exceptions.StopIteration'>
>>> brand_new_atm = hsbc.create_atm() # build a new one to get back in business
>>> for cash in brand_new_atm :
...    print cash
$100
$100
$100
$100
$100
$100
$100
$100
$100
...
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 可以使用Python的csv模块来实现,代码示例如下:import csv# 读取csv csv_file = csv.reader(open('your_file.csv', 'r'))# 定义字典 d = {'key1':'value1', 'key2':'value2'}# 将csv的每一行逐个读取出来 for line in csv_file: # 对每一行中的每个元素进行判断,如果元素在字典中,则替换成相应的值 for i in range(len(line)): if line[i] in d: line[i] = d[line[i]]# 写入新的csv文件 csv_write = csv.writer(open('your_file.csv', 'w')) csv_write.writerows(csv_file) ### 回答2: 使用Python对CSV文件利用字典中的关键字进行替换的方法如下: 1. 首先,导入csv模块和pandas模块,分别用于读取和写入CSV文件和处理数据。 2. 创建一个字典,将需要替换的关键字作为字典的键,将替换后的值作为字典的值。 3. 使用pandas的read_csv函数读取CSV文件,并将数据保存在一个DataFrame对象中。 4. 使用DataFrame对象的replace函数将字典中的关键字替换为对应的值。 5. 使用pandas的to_csv函数将替换后的数据写入新的CSV文件中。 下面是示例代码: ```python import csv import pandas as pd # 创建字典,将需要替换的关键字作为键,将替换后的值作为值 replace_dict = { '关键字1': '替换值1', '关键字2': '替换值2', '关键字3': '替换值3' } # 使用pandas的read_csv函数读取CSV文件,并保存在DataFrame对象中 df = pd.read_csv('input.csv') # 使用DataFrame对象的replace函数将关键字替换为对应的值 df.replace(replace_dict, inplace=True) # 使用pandas的to_csv函数将替换后的数据写入新的CSV文件中 df.to_csv('output.csv', index=False) ``` 以上代码中,`input.csv`为输入的CSV文件,`output.csv`为输出的替换后的CSV文件,可以根据实际需要进行修改。注意,代码中的关键字替换是按照完全匹配进行的,如果需要进行部分匹配或大小写不敏感的替换,可以使用正则表达式或其他方法进行处理。 ### 回答3: 使用Python对CSV文件利用字典中的关键字进行替换可以通过csv模块和字典的键值对进行操作。下面是代码示例: ```python import csv # 定义替换规则的字典 replace_dict = { "关键字1": "替换值1", "关键字2": "替换值2", # 添加更多的替换规则 } # 读取CSV文件 with open('input.csv', 'r') as file: reader = csv.DictReader(file) # 创建输出CSV文件 with open('output.csv', 'w', newline='') as output_file: writer = csv.DictWriter(output_file, fieldnames=reader.fieldnames) writer.writeheader() # 替换关键字并写入新的CSV文件中 for row in reader: updated_row = {} for fieldname, value in row.items(): if value in replace_dict: updated_row[fieldname] = replace_dict[value] else: updated_row[fieldname] = value writer.writerow(updated_row) ``` 在示例中,使用了`csv`模块进行CSV文件的读写操作。首先定义了一个`replace_dict`字典,存储需要替换的关键字及其对应的替换值。然后使用`with open`语句打开输入CSV文件和输出CSV文件。`csv.DictReader`用于读取输入CSV文件,并使用`csv.DictWriter`创建输出CSV文件,并通过`fieldnames`参数指定输出的列名与输入文件一致。 接下来,使用嵌套的`for`循环遍历输入文件的每一行和每个字段的值。如果字段的值在`replace_dict`中存在对应的键,即关键字,那么将字段的值替换为对应的替换值;否则保持不变。 最后,使用`writer.writerow`方法将更新后的行写入输出CSV文件中。完成后,输入CSV文件中的关键字将被替换为对应的值,并保存在输出CSV文件中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值