如何将一定长度后的字符串中的所有内容移动到列表中 python

How to move everything in a string after a certain length into a list python

我正在尝试构建一个函数,它将接收字符串中 140 个字符后的所有内容,然后将其移动到一个新变量中一秒钟 'tweet'。

tweetlength = 140
tweet = input("What do you want to tweet: ")
tweet_copy = []
tweet_2 = []

for i in tweet:
    if len(tweet) <= tweetlength:
        print(tweet)
        break
    if len(tweet) >= tweetlength:
        tweet_copy = tweet
        for x in tweet_copy [140, 280]:
            tweet_2.append(x)
            print(tweet_copy + tweet_2)

但是我目前收到一条错误消息“字符串索引必须是整数”。我需要能够引用索引值为 140-280 的列表中的所有内容,但当它是一个字符串时我似乎不能这样做?

只需从位置 140 开始创建一个子字符串。

下面的代码段中“sub_s”的值为“fg”

s = "abcdefg"
sub_s = s[5:]

由于您使用的是 python,因此您不必遍历字符串。您的代码可以像您在原始示例中所做的那样简单(假设您的输入最多为 280):

tweetlength = 140
tweet = input("What do you want to tweet: ")
tweet, tweet_2 = (tweet[:tweetlength], tweet[tweetlength:])
print(tweet)
if tweet_2:  # An empty string evaluates as False
    print('Second part')
    print(tweet_2)

我会使用这样的生成器:

MAXTWEET = 140

def tweets(user_input):
  while user_input:
    yield user_input[:MAXTWEET]
    user_input = user_input[MAXTWEET:]

for tweet in tweets('A very long string'):
  print(tweet)

通过这种方式,输入字符串可以是任意长度,生成器将 return 最大长度为 MAXTWEET 的字符串