我是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())
答案 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
无效。
是的,所以join
是reverse
的功能,所以没有办法解决。
因此请使用inplace
:
reversed
或return ' '.join(reversed(text.split()))
:
[::-1]
来自文档:
您可能已经注意到,仅修改列表的诸如insert,remove或sort之类的方法没有打印返回值-它们返回默认值None。 [1]这是Python中所有可变数据结构的设计原则。
在代码示例之后。
答案 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