小编Zer*_*eus的帖子

我可以在多行的python中编写lambda函数,并调用其他函数吗?

我正在阅读计算机程序的结构和解释 - 在计算机科学领域很有名.

受到函数式编程的鼓励,我尝试用Python而不是Scheme编写代码,因为我发现它更容易使用.但接下来的问题是:我需要多次使用Lambda函数,但我无法弄清楚如何使用lambda复杂的操作来编写一个未命名的函数.

在这里,我想编写一个lambda函数,其中一个字符串变量exp作为唯一的参数并执行exec(exp).但我得到一个错误:

>>> t = lambda exp : exec(exp)
File "<stdin>", line 1
t = lambda exp : exec(exp)
                    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

怎么会发生?如何应对呢?

我阅读了我的Python指南,并在没有找到我想要的答案的情况下搜索了Google.这是否意味着lambdapython 中的函数只是设计为语法糖?

python

0
推荐指数
1
解决办法
1097
查看次数

在Python中使用范围作为字典键,我有什么选择?

这是我的第一篇文章,我对编程很陌生,所以我可能无法恰当地传达我的问题,但我会尽我所能!

tries_dict = {1:'first', 2:'second', 3:'third', 4:'fourth', ub_tries:'last'}

ub_tries = user input

tries = 1

input ('\nCome on make your ' + tries_dict.get(tries) + guess: ')
Run Code Online (Sandbox Code Playgroud)

这三个元素是我创建的数字猜测游戏的一部分,我将它们包含在每个错误答案之后的while循环中tries += 1.

正如您所看到的,在我的字典中,前4个答案的自定义值和游戏结束前的最后可能机会,所以这是我尝试做的:

我想找到一种方法,在'4th'和'last'之间为每个答案/键设置'NEXT'值.

如:

tries = 5

Come on make your next guess

tries = 6

Come on make your next guess
Run Code Online (Sandbox Code Playgroud)

等等

我确实找到了一种带有复杂循环的方法,但是我想知道更好的/实用的方法来实现这一点.

以下是我想到的一些选项,但无法开始工作:

  1. 使用范围作为关键
  2. 找到一种方法来生成值介于4之间的列表,ub_tries并将该列表用作键

所以一般来说:如何创建一种方法来获得未在字典中指定的键的一般答案(下一个或其他)?

任何反馈都会非常感激,随时可以要求澄清,因为我可以告诉自己我的问题有点混乱.

我希望我在编程和提出相关问题时变得更加狡猾,到目前为止,我的编程几乎和我的总结技巧一样混乱,感叹!

python dictionary loops key range

0
推荐指数
1
解决办法
1万
查看次数

从文件中读取sys.maxint

我有一些Python程序从文件中读取某些值.

文件示例:

0
4
5
6
Run Code Online (Sandbox Code Playgroud)

解析每一行的代码如下:

    s = f2.readline()
    p = int(s)
Run Code Online (Sandbox Code Playgroud)

我试图传递sys.maxint文件,如下所示:

0
sys.maxint
5
6
Run Code Online (Sandbox Code Playgroud)

其中一种方法if (s=='sys.maxint')是在代码中检查特殊情况.

我想知道是否有另一种巧妙的方法呢?

python file

0
推荐指数
1
解决办法
154
查看次数

如何从Python中的ftp同时下载几个文件

我是Python编程的新手.我的问题是,如何同时下载几个文件.不是逐个文件,而是同时从ftp上的一个目录.现在我使用这个脚本,但我不知道如何重建这段代码:

  filenames = []
    ftp.retrlines("NLST", filenames.append)
    print filenames
    print path
    for filename in filenames:
        local_filename = filename
        print filename
        print local_filename
        f = open(local_filename, "wb") 

        s = ftp.size(local_filename)     
        sMB = s/(1024*1024) 
        print "file name: " + local_filename + "\nfile size: " + str(sMB) + " MB" 
        ftp.retrbinary("RETR %s" % local_filename, f.write) 
    print "\n Done :) "
    time.sleep(2)
    f.close()
    ftp.quit() #closing connection
    time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

它工作正常,但不是我需要的.

python file download simultaneous ftplib

0
推荐指数
1
解决办法
2583
查看次数

如何将字符串列表转换为查询字符串?

我有值列表:

md5 = ['1111', '3333', '44444', '555555', '56632423', '23423514', '2342352323']
Run Code Online (Sandbox Code Playgroud)

我想将它们连接成一个查询字符串:

'md5=1111&md5=3333&md5=44444&md5=555555&md5=56632423&md5=23423514&md5=2342352323'
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

python query-string

0
推荐指数
2
解决办法
2102
查看次数

如何在函数内部获取函数对象(Python)

我希望有类似的东西

def x():
  print get_def_name()
Run Code Online (Sandbox Code Playgroud)

但不一定知道的名字x.

理想情况下,它将返回'x'x将是函数的名称.

python function introspection python-2.7

0
推荐指数
2
解决办法
3052
查看次数

从列表中删除单个字符

我无法理解为什么我的代码无法正常工作.我试图从列表中删除长度只有一个字符的单词:

line = ['word','a','b','c','d','e','f','g']
for words in line:
    if len(words) == 1:
        line.remove(words)
Run Code Online (Sandbox Code Playgroud)

此代码返回此(它看起来删除'每隔一个'单个字符):

>>> line
['word', 'b', 'd', 'f']
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这不正常以及如何解决?

python string iteration list

0
推荐指数
1
解决办法
7881
查看次数

缺少在C++中输入的值中的元素

代码采用整数n并接受n-1元素.输入的元素都是从数字1n,除非他们中的一个.我们应该找到缺失的元素.

这个解决方案是最快的.但是,我不明白.
有人能解释一下吗?

#include <iostream>
int main(){
    int g,n,i,k;
    std::cin>>n;
    for(i=1; i<n; i++){
        std::cin>>g;
        k^=i^g;
    }
    std::cout<<(k^n);
}
Run Code Online (Sandbox Code Playgroud)

输入:

10
3 8 10 1 7 9 6 5 2
Run Code Online (Sandbox Code Playgroud)

输出:

4
Run Code Online (Sandbox Code Playgroud)

c++ algorithm bit-manipulation xor

0
推荐指数
1
解决办法
106
查看次数

计算嵌套列表中包含特定元素的列表的数量

我有一个清单,例如:

res = [['a', 'b', 'a'], ['a', 'b', 'c'], ['a']]
Run Code Online (Sandbox Code Playgroud)

我想计算有多少个列表包含特定字母。例如,“a”包含在 3 个列表中,“b”包含在 2 个列表中,“c”包含在 1 个列表中。

下面的代码是我到目前为止所拥有的:

count=0
docs='a'

list1=[]

for c in range(len(res)):
    for i in res[0]:
        list1.append(i)
        for i in list1:
            if i == docs:
                count=1
print count
Run Code Online (Sandbox Code Playgroud)

python list count python-2.7

0
推荐指数
1
解决办法
1386
查看次数

如何将元组传递给 str.format()?

我正在尝试使用该str.format()函数在列中打印矩阵。

这是出错的行:

>>>> "{!s:4}{!s:5}".format('j',4,3)
'j   4    '
>>>> "{!s:4}{!s:5}".format(b)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range
>>> b
('dat', 'is')
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:我想我知道问题是什么:我传递一个包含两个元素的元组,而不是作为一个包含一个元素的元组传递给函数,我的原始元组。因此出现此错误。所以问题是如何将这个元组传递给格式函数......

python string string.format tuples

0
推荐指数
1
解决办法
2089
查看次数