GVKun编程网logo

连接两个列表 - '+=' 和 extend() 之间的区别(两个列表可以连接成一个列表)

9

在这篇文章中,我们将带领您了解连接两个列表-'+='和extend()之间的区别的全貌,包括两个列表可以连接成一个列表的相关情况。同时,我们还将为您介绍有关android–putExtra()和set

在这篇文章中,我们将带领您了解连接两个列表 - '+=' 和 extend() 之间的区别的全貌,包括两个列表可以连接成一个列表的相关情况。同时,我们还将为您介绍有关android – putExtra()和setData()之间的区别、android – setText()和append()之间的区别、android:text =“@ string”和android:text =“…”之间的区别、Bash – 两个列表之间的区别的知识,以帮助您更好地理解这个主题。

本文目录一览:

连接两个列表 - '+=' 和 extend() 之间的区别(两个列表可以连接成一个列表)

连接两个列表 - '+=' 和 extend() 之间的区别(两个列表可以连接成一个列表)

我已经看到实际上有两种(也许更多)在 Python 中连接列表的方法:

一种方法是使用extend()方法:

a = [1, 2]b = [2, 3]b.extend(a)

另一个使用加号 (+) 运算符:

b += a

现在我想知道:这两个选项中的哪一个是进行列表连接的“pythonic”方式,两者之间有区别吗?(我查阅了官方的 Python
教程,但找不到任何关于这个主题的内容)。

答案1

小编典典

字节码级别的唯一区别是该.extend方式涉及函数调用,这在
Python
中比INPLACE_ADD.

除非您执行此操作数十亿次,否则您真的不必担心。然而,瓶颈很可能在其他地方。

android – putExtra()和setData()之间的区别

android – putExtra()和setData()之间的区别

putExtra()和setData()有什么区别?我已经阅读了 android文档,但没有太多的帮助.
还有一个以前的问题 Intent.setData vs Intent.putExtra,但仍然不清楚.
提前致谢.

解决方法

使用setData()

设置此意图正在运行的数据.此方法自动清除以前由setType(String)或setTypeAndnormalize(String)设置的任何类型.

注意:Android框架中的方案匹配是区分大小写的,与正式的RFC不同.因此,您应该始终使用小写方案写Uri,或者使用normalizeScheme()或setDataAndnormalize(Uri)来确保该方案转换为小写.

参数

data: The Uri of the data this intent is Now targeting.

意图用于向Android系统发出特定事件的信号.意图通常描述应该执行的操作,并提供应该执行此类操作的数据.例如,您的应用程序可以通过意图启动特定URL的浏览器组件.这通过以下示例来证明.

String url = "http://www.google.com";
    Intent i = new Intent(Intent.ACTION_VIEW);
    i.setData(Uri.parse(url));
    startActivity(i);

但是Android系统如何识别可以对某种意图做出反应的组件?

为此,使用意图过滤器的概念.意图过滤器指定活动,服务或广播接收者可以响应的意图的类型.因此,它声明了组件的功能.

Android组件在AndroidManifest.xml中静态注册意图过滤器,也可以通过代码动态地注册广播接收器.意图过滤器由其类别,操作和数据过滤器定义.它还可以包含其他元数据.

如果意图发送到Android系统,Android平台将使用Intent对象中包含的数据运行接收器确定.在此,它确定了为意图数据注册的组件.如果几个组件已经注册了相同的意图过滤器,用户可以决定应该启动哪个组件.

putExtra()

将扩展数据添加到意图.

参数:

name: The name of the extra data.

value: The String array data value.

返回同一个Intent对象,用于将多个调用链接到单个语句中.

android – setText()和append()之间的区别

android – setText()和append()之间的区别

我很好奇setText()和append()正在创建的差异.我正在写一个带行号的非常基本的编辑器.我有一个TextView来保存左边的行号,与右边的EditText配对来保存数据.这是XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:gravity="top">
    <TextView
        android:id="@+id/line_numbers"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="0dip"
        android:gravity="top"
        android:textSize="14sp"
        android:textColor="#000000"
        android:typeface="monospace"
        android:paddingLeft="0dp"/>
    <EditText
        android:id="@+id/editor"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:inputType="text|textMultiLine|textNoSuggestions"
        android:imeOptions="actionNone"
        android:gravity="top"
        android:textSize="14sp"
        android:textColor="#000000"
        android:typeface="monospace"/>
</LinearLayout>

忽略我正在做的其他一些事情,我遇到的最奇怪的事情是当我使用append()时出现的额外间距(假设已经初始化了所有这些).

下面结合XML,在TextView和EditText之间设置一个刷新边框.

theEditor = (EditText) findViewById(R.id.editor);
lineNumbers = (TextView) findViewById(R.id.line_numbers);
theLineCount = theEditor.getLineCount();
lineNumbers.setText(String.valueOf(theLineCount)+"\n");

但是,最后一行更改为此,并且突然显示TextView中的每一行在EditText之前的右侧都有填充.

lineNumbers.append(String.valueOf(theLineCount)+"\n");

这不是世界末日.但我很好奇是什么导致了这种行为.因为我是这门语言的新手,所以我唯一能想到的就是,当追加将可编辑放在那里时,它会添加填充.如果我能得到答案,我可以用更简单的附加替换所有这些讨厌的行:

lineNumbers.setText(lineNumbers.getText().toString()+String.valueOf(newLineCount)+"\n");

解决方法:

我认为通过append方法将BufferType更改为EDITABLE会导致意外的填充.
如果要使用append方法而不是setText方法并删除该填充,

您可以尝试使用删除它

textView.setincludeFontPadding(false)

或者将此行添加到xml文件中的textview

android:includeFontPadding="false"

希望这可以帮助.

android:text =“@ string”和android:text =“…”之间的区别

android:text =“@ string”和android:text =“…”之间的区别

也许这是一个愚蠢的问题,但除了显而易见之外,它们之间存在差异
android:text =“@ string / ….”和android:text =“…”?我在想,也许屏幕上显示的文字可以选择使用@ string.Which最好一般使用还是真的没关系?

解决方法

当你使用android:text =“@ string /”时,应用程序将在ressources文件中找到字符串的值,使用这种技术,你可以管理多语言应用程序,并按语言管理“strings”文件.

Bash – 两个列表之间的区别

Bash – 两个列表之间的区别

好的,我在文本文件中的linux框中有两个相关的列表:
/tmp/oldList
 /tmp/newList

我需要比较这些列表,看看添加了哪些行,删除了哪些行.
然后,我需要循环遍历这些行,并根据是添加还是删除对它们执行操作.如何在bash中执行此操作?

使用comm(1)命令比较两个文件.他们都需要排序,如果它们很大,你可以事先做,或者你可以使用bash进程替换来进行排序.

comm可以组合标志-1,-2和-3,指示哪个文件抑制行(文件1唯一,文件2唯一或两者共同).

只能在旧文件中获取行:

comm -23 <(sort /tmp/oldList) <(sort /tmp/newList)

仅在新文件中获取行:

comm -13 <(sort /tmp/oldList) <(sort /tmp/newList)

您可以将它们加载到一段读取循环中以处理每行:

while read old ; do
    ...do stuff with $old
done < <(comm -23 <(sort /tmp/oldList) <(sort /tmp/newList))

对于新行也是如此.

今天关于连接两个列表 - '+=' 和 extend() 之间的区别两个列表可以连接成一个列表的介绍到此结束,谢谢您的阅读,有关android – putExtra()和setData()之间的区别、android – setText()和append()之间的区别、android:text =“@ string”和android:text =“…”之间的区别、Bash – 两个列表之间的区别等更多相关知识的信息可以在本站进行查询。

本文标签: