Python:从另一个函数参数内部调用函数

时间:2018-10-26 00:35:16

标签: python python-3.x

我是python的新手,请原谅外行的描述。

问题:给定一个句子,返回一个单词相反的句子

我的解决方案:

def sentence_reverse(text):
    a = text.split()
    a.reverse()
    return ' '.join(a)

输出:

sentence_reverse('I am home') --> 'home am I'
sentence_reverse('We are ready') --> 'ready are We'

代码按照预期的方式工作,但是我的问题是,为什么我不能直接从前一个函数的返回结果中进行函数调用。我,

为什么我不能做类似的事情

返回''.join(text.split()。reverse())

这将在Java中很好地工作,因为我从text.split()获取List对象,我将使用reverse()函数对其进行操作,该函数将向我返回反向列表,然后该反向列表将由join()使用)以将该列表制成字符串。

这也是我尝试过的事情:

text.split()返回一个列表,并在其上应用.reverse()函数应该以相反的顺序返回同一列表的元素,但是当我执行此行时,{{1 }},我得到print(text.split().reverse())

3 个答案:

答案 0 :(得分:4)

因为bool add (const char aug[], const char add[], char sum[]) //aug is the first command line binary number (argv[1]), add is the second (argv[2]) { char carry = '0'; int ag = strlen(augend) - 1; int ad = strlen(addend) - 1; int max = ((ag > ad)? ag : ad); for (int i = 0; i <= max; ag--, ad--, i++) { char augDigit = (ag < 0)? '0' : augend[ag]; char addDigit = (ad < 0)? '0' : addend[ad]; switch (augDigit + addDigit + carry) { case '0' + '0' + '0': sum[i] = '0'; carry = '0'; break; case '1' + '0' + '0': sum[i] = '1'; carry = '0'; break; case '1' + '1' + '0': sum[i] = '0'; carry = '1'; break; case '1' + '1' + '1': sum[i] = '1'; carry = '1'; break; } } return true; // returns true if the sum is less than 36 digits but I'll deal with // that once i fix this issue } 返回None并更新列表,所以None对reverse无效。

是的,所以joinreverse的功能,所以没有办法解决。

因此请使用inplace

reversed

return ' '.join(reversed(text.split()))

[::-1]

来自文档:

  

您可能已经注意到,仅修改列表的诸如insert,remove或sort之类的方法没有打印返回值-它们返回默认值None。 [1]这是Python中所有可变数据结构的设计原则。


  

在代码示例之后。

     
    

https://docs.python.org/3/tutorial/datastructures.html

  

答案 1 :(得分:2)

  

这将向我返回反向列表..

这是问题所在。在Python中,调用 "/posts/" + this.props.match.params.post_id + "/comments", 不会返回反向列表。只是将其反转就位。

您需要的是:

list.reverse()

答案 2 :(得分:2)

您可以使用python列表迭代器来代替:{p>而不是使用 import AWS from 'aws-sdk' const request = require('request') const S3 = new AWS.S3() var promise = new Promise((resolve, reject) => { return request({ url : 'https://link_to_downloadable_pdf/', encoding : null }, function(err, res, body){ if(err) return reject({ status:500,error:err }) return resolve({ status:200, body: body}) }) }) promise.then((pdf) => { if(pdf.status == 200) { console.log('uploading file..') s3.putObject({ Bucket: process.env.bucket, Body: pdf.body, Key: 'my-pdf.pdf', ACL:'public-read' }, (err,data) => { if(err) console.log(err) else console.log('uploaded') }) } })

.reverse