这三个功能是我学习指南的一部分,非常感谢一些帮助。 在每种情况下,函数都返回一个值(因此使用return语句):它不会打印任何参数的值(没有print语句)或mutate(更改其值)。
1)repl函数有三个参数: ◦old是任何值; ◦new是任何值; ◦xs是一个列表。
Example:
>>> repl('zebra', 'donkey', ['mule', 'horse', 'zebra', 'sheep', 'zebra'])
['mule', 'horse', 'donkey', 'sheep', 'donkey']
它返回一个新列表,该列表是通过用new替换xs中的每个旧事件而形成的。
它不能改变列表xs;也就是说,在从函数返回之后,为xs给出的实际参数必须是之前的参数。
>>> friends = ['jules', 'james', 'janet', 'jerry']
>>> repl('james', 'henry', friends)
['jules', 'henry', 'janet', 'jerry']
>>> friends
['jules', 'james', 'janet', 'jerry']
2)搜索功能在列表中查找值。它需要两个参数: ◦y是要搜索的值。 ◦xs是要搜索的列表。
如果出现,则返回xs中第一次出现y的索引;否则为-1。
Examples:
>>> words = ['four', 'very', 'black', 'sheep']
>>> search('four', words)
0
>>> search('sheep', words)
3
>>> search('horse', words)
-1
3)双打函数给出一个数字列表,并返回一个新列表,其中包含给定列表中每个数字的双精度数。
Example:
>>> doubles([1, 3, 7, 10])
[2, 6, 14, 20]
它不能改变给定的列表:
>>> salaries = [5000, 7500, 15000]
>>> doubles(salaries)
[10000, 15000, 30000]
>>> salaries
[5000, 7500, 15000]
这是在不使用除append之外的任何列表方法的情况下完成的。 (特别是,您不能使用搜索功能的索引或计数。)
虽然您可以使用list len函数,以及列表操作+,*,indexing,切片和==来比较列表或元素。您需要使用其中一些但不是全部。
正如我在介绍中所提到的,非常感谢任何帮助。
到目前为止,我所拥有的只是。
def repl (find, replacement, s):
newString = ''
for c in s:
if c != find:
newString = newString + c
else:
newString = newString + replacement
return newString
def search(y, xs):
n = len(xs)
for i in range(n):
if xs[i] == y:
return i
return -1
和....
def search(key,my_list):
if key in my_list:
return my_list.index(key)
else:
return
我不确定在else语句之后需要返回什么。
答案 0 :(得分:0)
def relp(old,new,my_list):
final = []
for x in my_list:
if x is old:
final.append(new)
else:
final.append(x)
return final
def search(key,my_list):
if key in my_list:
return my_list.index(key)
else:
return -1
def doubles(my_list):
return[x*x for x in my_list]
答案 1 :(得分:0)
我怀疑这一课是关于列表理解
doubles = lambda my_list: [x*2 for x in my_list]
repl = lambda old_t,new_t,my_list: [x if x != old_t else new_t for x in my_list]
print repl("cow","mouse",["cow","rat","monkey","elephant","cow"])
print doubles([1,2,3,4,'d'])