Faits:
A. Par contrat de bail du 8 mai 1974, W._ SA (devenue depuis lors X._ SA; ci-après: X._) a donné en location à H.A._ et F.A._ un appartement de six pièces d'une surface de 174 m2 situé au deuxième étage de l'immeuble sis à la rue Charles-Sturm 20, à Genève. Depuis le 1er juillet 1994, le loyer, sans les charges, s'élève à 15'948 fr. par an, soit 1'329 fr. par mois.
Par avis officiel du 2 mars 2007, X._ a résilié le bail pour le 30 juin 2007. Le congé a été signifié pour des motifs économiques, afin de relouer l'appartement à un tiers pour un loyer supérieur.
B. H.A._ et F.A._ ont saisi la Commission de conciliation en matière de baux et loyers, laquelle a annulé la résiliation du bail.
X._ a porté l'affaire devant le Tribunal des baux et loyers du canton de Genève. Dans la procédure, elle a fait état d'objets comparatifs, décrits sur des fiches, dont les loyers étaient censés être déterminants pour établir les loyers usuels dans le quartier. Les locataires ont conclu à l'annulation du congé et, subsidiairement, à la prolongation du bail pour une durée de quatre ans échéant le 30 juin 2011. Par jugement du 17 septembre 2008, le tribunal a annulé le congé; il a jugé qu'aucun des objets présentés par la bailleresse n'était comparable à l'appartement occupé par les locataires et que X._ n'avait ainsi pas démontré qu'elle pourrait relouer l'appartement à un tiers pour un loyer non abusif supérieur au loyer payé par les locataires actuels.
Saisie par la bailleresse, la Chambre d'appel en matière de baux et loyers du canton de Genève a confirmé ce jugement par arrêt du 19 juin 2009.
X._ a interjeté un recours en réforme. Par arrêt du 15 décembre 2009 (cause 4A_412/2009; <ref-ruling>), le Tribunal fédéral a admis partiellement le recours, annulé l'arrêt attaqué et renvoyé la cause à l'autorité cantonale pour nouvelle décision. Il a jugé tout d'abord que la cour cantonale avait violé l'<ref-law> en retenant comme quartier déterminant au sens de cette disposition un périmètre très restreint, qui ne correspondait en particulier ni à un quartier historique, ni à une entité administrative. Afin d'éviter un renvoi inutile, la cour de céans a recherché ensuite si, parmi les neuf objets situés dans ce périmètre trop limité et examinés par la cour cantonale, il y avait tout de même les cinq exemples - exigés par la jurisprudence pour constater les loyers usuels du quartier - comparables à l'appartement occupé par les époux A._; elle est arrivée à la conclusion que tel n'était pas le cas. En conséquence, la cour cantonale était invitée à déterminer si des éléments comparatifs qu'elle avait écartés d'emblée pouvaient être considérés comme compris dans le même quartier que l'appartement de référence et, le cas échéant, à procéder à la comparaison concrète.
Par arrêt du 29 mars 2010, la Cour de justice a renvoyé la cause au Tribunal des baux et loyers pour instruction et nouvelle décision au sens des considérants du Tribunal fédéral, avec possibilité pour les parties de compléter leurs allégués.
Le 16 décembre 2010, le Tribunal des baux et loyers s'est rendu à la rue Charles-Sturm 20 pour examiner l'immeuble et l'appartement en cause. Selon le procès-verbal établi à cette occasion, l'immeuble a été construit en 1893; en 1979, les façades ont été rénovées et les fenêtres ont été pourvues d'un double vitrage; l'entrée de l'immeuble est munie d'un code d'accès, sans interphone; l'état général du bâtiment, à l'extérieur, est qualifié de moyen; le hall d'entrée de l'immeuble et la cage d'escaliers sont en bon état; la cuisine - ni agencée ni équipée - est ancienne et son état est qualifié de vétuste; le système électrique est ancien; les WC et la salle de bains sont qualifiés d'anciens et de vétustes; les pièces de l'appartement qui n'ont pas été rénovées aux frais des locataires sont décrites comme vétustes.
Par jugement du 24 novembre 2011, le Tribunal des baux et loyers a derechef annulé le congé notifié le 2 mars 2007. Dans sa décision, il a tout d'abord délimité le quartier déterminant, dont les contours coïncident en grande partie avec ceux préconisés par la bailleresse; le périmètre fixé comprend tous les immeubles proposés à titre comparatif par la bailleresse, sauf l'exemple n° 46 sis au chemin de l'Escalade, au sud de la surface retenue. Vingt objets comparatifs ont ainsi été examinés. Le tribunal en a écarté neuf qui se trouvaient dans des immeubles édifiés plus de vingt ans avant ou après la construction de l'immeuble de la rue Charles-Sturm 20. Le même sort a été réservé à deux exemples qui présentaient une différence de surface de 25 à 30% avec l'appartement litigieux. Sur les neuf objets comparatifs restants, le tribunal a écarté les exemples nos 10, 12, 1, 27, 31 et 51 en raison de divergences dans les équipements et les accessoires, ainsi que dans l'état de l'immeuble et de l'appartement. Les derniers objets (nos 11, 21 et 33) n'étaient pas en nombre suffisant pour pouvoir procéder à une comparaison valable selon la jurisprudence.
Statuant le 10 septembre 2012 sur appel de X._, la Chambre des baux et loyers de la Cour de justice a confirmé le jugement de première instance.
C. X._ interjette un recours en matière civile. Elle conclut à l'annulation de l'arrêt cantonal, puis au renvoi de la cause à l'autorité précédente pour instruction complémentaire. A titre alternatif, elle demande au Tribunal fédéral de constater la validité de la résiliation du 2 mars 2007 et de refuser aux époux A._ une prolongation du bail.
H.A._ et F.A._ concluent à la confirmation de l'arrêt attaqué et, subsidiairement, au renvoi de la cause à l'autorité cantonale pour qu'elle ordonne à la bailleresse de produire toutes pièces utiles en vue d'effectuer un calcul de rendement.
Pour sa part, la cour cantonale se réfère aux considérants de son arrêt.

Considérant en droit:
1. 1.1 Le recours est interjeté par la partie qui a succombé en instance cantonale (<ref-law>). Il est dirigé contre un arrêt final (<ref-law>) rendu en matière civile (<ref-law>) par une autorité cantonale de dernière instance (<ref-law>) dans une affaire pécuniaire dont la valeur litigieuse atteint le seuil de 15'000 fr. requis par l'<ref-law> en matière de droit du bail à loyer (cf. arrêt de renvoi du 15 décembre 2009, consid. 1.1 non publié). Déposé dans le délai (art. 45 al. 1 et art. 100 LTF) et la forme (<ref-law>) prévus par la loi, le recours est en principe recevable.
1.2 Un arrêt de renvoi lie tant l'autorité cantonale à laquelle la cause est renvoyée que le Tribunal fédéral ultérieurement saisi d'un recours contre la nouvelle décision de l'autorité cantonale (cf. <ref-ruling> consid. 2). Quant aux parties, elles ne peuvent pas faire valoir, dans un recours contre la nouvelle décision cantonale, des moyens que le Tribunal fédéral avait expressément rejetés dans l'arrêt de renvoi (cf. <ref-ruling> consid. 4.2) ou qu'il n'avait pas eu à examiner, faute pour les parties de les avoir invoqués dans la première procédure de recours, alors qu'elles pouvaient - et devaient - le faire (cf. <ref-ruling> consid. 2).
Dans ces limites, un recours en matière civile peut être interjeté pour violation du droit, tel qu'il est délimité par les art. 95 et 96 LTF, y compris les droits constitutionnels (<ref-ruling> consid. 1.2). Compte tenu de l'exigence de motivation contenue à l'art. 42 al. 1 et 2 LTF, sous peine d'irrecevabilité (<ref-law>), le Tribunal fédéral n'examine en principe que les griefs invoqués; il n'est pas tenu de traiter, comme le ferait une autorité de première instance, toutes les questions juridiques qui se posent, lorsque celles-ci ne sont plus discutées devant lui (<ref-ruling> consid. 2.2.1 p. 389; <ref-ruling> consid. 1.4 p. 400). Par exception à la règle selon laquelle il applique le droit d'office, le Tribunal fédéral ne peut entrer en matière sur la violation d'un droit constitutionnel ou sur une question relevant du droit cantonal ou intercantonal que si le grief a été invoqué et motivé de manière précise par la partie recourante (<ref-law>).
Par ailleurs, le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si les faits ont été établis de façon manifestement inexacte - ce qui correspond à la notion d'arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 4.1.2 p. 62; <ref-ruling> consid. 5.1 p. 356) - ou en violation du droit au sens de l'<ref-law> (<ref-law>).
2. La recourante se plaint d'une violation de son droit à la preuve au sens de l'<ref-law> et de l'ancien <ref-law>. A son avis, les juges genevois auraient dû ordonner les mesures probatoires qu'elle réclamait, à savoir des inspections locales des appartements comparatifs décrits dans les fiches produites. Elle fait valoir en particulier que certains qualificatifs figurant sur les fiches - comme "récent" ou "bon" - relèvent de la subjectivité de l'auteur et que seul un transport sur place aurait permis de concrétiser et de compléter son offre de preuve.
2.1 Le moyen tiré de la violation du droit à la preuve découlant de l'<ref-law> n'a pas de portée propre en l'occurrence, mais se confond avec le grief de la violation de l'ancien <ref-law> (arrêt 4A_295/2010 du 26 juillet 2010 consid. 2.2.1; arrêt 4C.199/2000 du 21 décembre 2000 consid. 2c, in SJ 2001 I p. 278).
Aux termes de l'ancien <ref-law>, le juge établit d'office les faits et apprécie librement les preuves; les parties sont tenues de lui présenter toutes les pièces nécessaires à l'appréciation du litige. Cette disposition est applicable aux procédures en cours à l'entrée en vigueur du CPC le 1er janvier 2011 (<ref-law>; DAVID LACHAT, in Commentaire romand, 2e éd. 2012, n° 2 ad art. 274-274g CO; actuellement, art. 247 al. 1 et 2 let. a CPC qui instaure, comme l'ancien <ref-law>, une maxime inquisitoire sociale, notamment dans les litiges en rapport avec la résiliation d'un bail à loyer [cf. art. 243 al. 2 let. c CPC]; cf. Message relatif au code de procédure civile suisse du 28 juin 2006, FF 2006 6953 et 6956 ch. 5.16).
Selon la jurisprudence relative à l'ancien <ref-law>, la maxime inquisitoriale sociale ne constitue pas une maxime officielle absolue. Le juge ne doit pas instruire d'office le litige lorsqu'un plaideur renonce à expliquer sa position, mais il doit interroger les parties et les informer de leur devoir de collaborer à l'instruction et de fournir des preuves. Si des motifs objectifs le conduisent à soupçonner que les allégations et offres de preuves d'une partie sont lacunaires, il doit inviter celle-ci à compléter ses moyens (<ref-ruling> consid. 3.1 p. 80; <ref-ruling> consid. 4a p. 238 s.). La maxime inquisitoire qui a cours en droit du bail ne permet pas d'étendre ad libitum la procédure probatoire en recueillant toutes les preuves possibles; elle n'exclut nullement une appréciation anticipée des preuves, à l'issue de laquelle le juge renonce à en administrer de supplémentaires parce qu'il dispose déjà des éléments nécessaires pour statuer (arrêt précité du 26 juillet 2010 consid. 2.2.2).
2.2 La cour cantonale, à la suite du Tribunal des baux et loyers, a éliminé de la comparaison un objet en raison de sa situation (n° 46), neuf objets en raison de la date de construction des immeubles qui les abritaient (nos 16, 22, 23ter, 23quinquies, 23sexies, 32, 47, 48 et 49) et deux objets en raison de leur surface (nos 34 et 50). L'adresse d'un immeuble, les dates de construction et les surfaces en cause sont des éléments - incontestés par les intimés - qui ressortaient des fiches produites par la bailleresse et que le juge pouvait manifestement tenir pour établis sans procéder à une instruction complémentaire.
La cour cantonale a écarté six autres objets en se fondant sur les descriptions figurant dans les fiches, relatives à l'état des immeubles et des appartements, à l'âge des installations électriques, des cuisines et des sanitaires, à l'équipement des cuisines, à la présence d'un interphone, d'un balcon ou d'une place de parc, ainsi qu'à l'étage où se trouve l'appartement présenté à titre comparatif. La recourante sous-entend que ces fiches sont lacunaires en ce sens que les adjectifs utilisés pour qualifier l'état des immeubles et des appartements ("bon" ou "excellent") ainsi que l'âge des équipements ("récent") relèvent de la subjectivité et ne sont donc pas assez précis pour permettre une comparaison concrète.
Il convient de rappeler au préalable que la maxime inquisitoriale sociale n'impose pas au juge de se substituer au bailleur, auquel incombe le devoir de fournir des fiches utiles à la comparaison avec l'appartement dont le congé a été signifié pour des motifs économiques (arrêt précité du 26 juillet 2010 consid. 2.2.3). En l'espèce, le Tribunal des baux et loyers a procédé à une inspection de l'appartement occupé par les intimés et de l'immeuble qui l'abrite. Sur la base de cette mesure probatoire, il a été constaté notamment que la cuisine, ancienne, n'était ni agencée, ni équipée et que le système électrique ainsi que les sanitaires étaient anciens; l'état de la cuisine, des sanitaires et des pièces non rénovées par les locataires a été qualifié de vétuste. A partir de là, le Tribunal des baux et loyers, puis la Chambre des baux et loyers devaient rechercher si les exemples proposés étaient comparables à l'appartement litigieux. En ce qui concerne l'état des appartements présentés, les fiches produites indiquaient quatre fois "excellent" et deux fois "bon". Même si ces qualificatifs comportent une part de subjectivité, il pouvait d'emblée être exclu que l'état des appartements soit comparable à celui occupé par les intimés, qualifié de vétuste. De même, l'adjectif "récent" utilisé dans toutes les fiches en cause pouvait sans autre être opposé au mot "ancien", lequel qualifiait la cuisine, le système électrique et les sanitaires de l'appartement de la rue Charles-Sturm 20. Les autorités cantonales n'ont dès lors pas méconnu la maxime inquisitoriale d'office en considérant qu'elles disposaient, entre le procès-verbal de l'inspection locale et les descriptions même en partie subjectives figurant sur les fiches produites par la bailleresse, des éléments nécessaires pour déterminer si les objets proposés étaient comparables ou non à l'appartement loué par les intimés, sans qu'il se justifie de procéder, en plus, à un transport sur place.
Le moyen tiré d'une violation de l'ancien <ref-law> se révèle mal fondé.
3. 3.1 La recourante reproche à la cour cantonale d'avoir enfreint l'<ref-law> et l'<ref-law>. Premièrement, la délimitation du quartier déterminant au sens de ces dispositions serait erronée et n'aurait pas dû exclure des tronçons faisant partie du quartier de Champel Sud, à savoir l'avenue Miremont, l'avenue Callas, l'avenue Beau-Séjour, l'avenue de Champel et le chemin de l'Escalade (où se trouve l'objet comparatif n° 46 exclu par les instances cantonales). Deuxièmement, la recourante est d'avis que la Chambre des baux et loyers a écarté les objets comparatifs nos 10, 12, 15, 27, 31 et 51 en raison de différences qui ne sont pas déterminantes, comme par exemple la présence d'un interphone ou la qualification éminemment subjective de l'état de l'immeuble et de l'appartement. Elle voudrait également, dans le cadre d'une "impression d'ensemble" des loyers du quartier, réintégrer dans la comparaison les exemples écartés en raison de leur année de construction ou de leur surface. Enfin, même si elle ne remet pas en cause le caractère trop général des statistiques genevoises en matière de loyers, la recourante fait grief aux juges cantonaux de ne pas les avoir prises en considération, car, selon elle, ces données auraient corroboré l'impression d'ensemble qui se dégage des loyers comparatifs produits, à savoir qu'elle est en mesure de relouer l'appartement occupé par les intimés à un loyer mensuel supérieur à 1'329 fr. sans qu'un abus puisse lui être imputé.
3.2 Une résiliation du bail motivée par des considérations économiques est annulable si l'application de la méthode absolue permet d'exclure l'hypothèse que le bailleur puisse majorer légalement le loyer, notamment parce que celui-ci est déjà conforme aux loyers usuels dans le quartier (<ref-law>; <ref-ruling> consid. 2.1 p. 76 s. et les arrêts cités).
Selon l'<ref-law>, les loyers déterminants pour la constatation des loyers usuels, dans la localité ou le quartier, sont ceux des logements comparables à la chose louée, quant à leur emplacement, dimension, équipement, état et année de construction (al. 1), à l'exclusion des loyers résultant de ce qu'un bailleur ou un groupe de bailleurs domine le marché (al. 3). Les statistiques officielles doivent être prises en considération (al. 4). En règle générale, le juge doit disposer de cinq éléments de comparaison au moins. Il lui appartient de procéder à des comparaisons concrètes. L'autorité cantonale de dernière instance indiquera exactement les critères sur lesquels elle s'est fondée. Sur cette base, le Tribunal fédéral contrôle librement si les loyers usuels dans le quartier ou la localité sont établis conformément au droit fédéral (<ref-ruling> consid. 3.1 p. 79 s. et les arrêts cités).
La délimitation du quartier au sens de l'<ref-law> et de l'<ref-law> dépend avant tout de la situation de fait et de l'histoire des lieux; s'il forme un ensemble sur les plans historique, géographique, sociologique ou administratif, un quartier suppose une certaine étendue et ne peut se limiter à quelques immeubles ou pâtés de maisons. Par sa connaissance des circonstances locales, l'autorité cantonale est la mieux à même de cerner le quartier dans un cas particulier. C'est pourquoi le Tribunal fédéral n'interviendra qu'avec retenue, lorsqu'il ressort de la décision cantonale que l'autorité précédente a méconnu la notion de quartier ou n'en a pas tenu compte, qu'elle s'est fondée sur des faits qui ne devaient jouer aucun rôle ou, au contraire, qu'elle n'a pas pris en considération des faits pertinents, ou encore qu'elle a abouti à un résultat manifestement erroné (<ref-ruling> consid. 2.2.1 p. 77 s.)
3.2.1 La cause a été renvoyée à la cour cantonale afin notamment qu'elle délimite à nouveau le quartier déterminant, en tenant compte des indications rappelées ci-dessus. A son tour, la Chambre des baux et loyers a renvoyé l'affaire au Tribunal des baux et loyers. Pour définir le quartier susceptible d'abriter des immeubles de référence, le tribunal s'est fondé sur le découpage administratif de la ville de Genève en sous-secteurs statistiques; dans le cas particulier, la zone déterminante comprenait les sous-secteurs suivants: Tranchées, Bourg-de-Four, rues Basses, Longemalle, Rond-Point de Rive, Glacis de Rive, Villereuse, de Roches, Belmont, Krieg, Contamines, Florissant, Miremont, Plateau de Champel, Parc Bertrand, Malombré et De-Beaumont. Cette délimitation, qui est proche de celle défendue par la recourante, a été confirmée par la cour cantonale.
Le découpage administratif de la ville est reconnu comme un facteur pouvant être déterminant pour définir le quartier; par ailleurs, les autorités cantonales ont tenu compte du fait que l'appartement litigieux se situait à la limite de trois quartiers (cf. <ref-ruling> consid. 2.2.1 p. 78). Au surplus, la motivation du grief s'épuise en l'affirmation du caractère erroné du découpage incriminé, sans que la recourante ne démontre en quoi le périmètre retenu méconnaîtrait la notion de quartier. Dans ces conditions, la cour de céans, à laquelle s'impose une certaine réserve en la matière, ne peut que rejeter le moyen fondé sur une prétendue violation de la notion de quartier.
3.2.2 En ce qui concerne le deuxième grief pris d'une violation des <ref-law> et 11 OBLF, il convient de relever d'emblée que, contrairement à ce que la recourante soutient en citant de manière inexacte la jurisprudence, la détermination des loyers usuels du quartier ne s'effectue pas sur la base d'une "impression d'ensemble"; en effet, un tel mode de procéder se heurterait à la règle bien établie selon laquelle le juge doit se livrer à des comparaisons concrètes, en fonction des critères énumérés à l'<ref-law> (cf. arrêt 4A_573/2008 du 24 avril 2009 consid. 2.4). De même, il a déjà été confirmé, dans l'arrêt de renvoi, que des exemples situés dans des immeubles construits plus de vingt ans avant ou après le bâtiment concerné, devaient être écartés de la comparaison (<ref-ruling> consid. 3.2.1 p. 80 s.), à l'instar des objets présentant une différence de surface d'environ 20% avec le logement en cause (même arrêt consid. 3.2.2 p. 82). C'est donc à bon droit que la cour cantonale a éliminé, pour l'un ou l'autre de ces motifs, les objets que la recourante considère malgré tout comme révélateurs des loyers du quartier.
Il reste à examiner les six exemples écartés par les juges genevois sur la base d'autres critères, soit essentiellement l'état et l'équipement de l'appartement.
L'état de l'objet n° 10 est décrit comme "bon", ce qui le différencie manifestement de l'état du logement à comparer, qualifié de "vétuste". Par ailleurs, les installations électriques de l'exemple n° 10 sont récentes, alors que celles de l'appartement de la rue Charles-Sturm 20 sont anciennes. Enfin, quand bien même il n'est pas précisé si elle est récente ou non, la cuisine de l'objet n° 10 est agencée et équipée, contrairement à celle de l'appartement occupé par les intimés. Il s'agit là de trois différences notables qui permettaient déjà à la cour cantonale d'éliminer l'objet n° 10 de la comparaison.
L'état de l'objet n° 12 est qualifié d'"excellent"; les installations électriques de cet appartement sont récentes; la cuisine est équipée; les sanitaires sont récents, ce qui n'est pas le cas des WC et de la salle de bains du logement à comparer, qui ont été qualifiés d'anciens à l'issue de l'inspection locale du Tribunal des baux et loyers. Là aussi, l'objet n° 12 se distingue notablement de l'appartement faisant l'objet du bail litigieux en tout cas sur quatre éléments, ce qui suffit à nier son caractère comparable.
L'objet n° 15 présente un bon état d'entretien; la cuisine est équipée et récente; les toilettes sont récentes. Sur cette base, il pouvait déjà être écarté de la comparaison.
L'objet n° 27 est dans un état qualifié d'"excellent"; les installations électriques sont récentes; la cuisine, agencée et équipée, est récente. A l'instar de l'objet n° 10, l'objet n° 27 présente, sur ces points, des différences notables avec l'appartement de référence, qui justifient à elles seules sa mise à l'écart de la comparaison.
En ce qui concerne l'état de l'appartement, l'âge des installations électriques ainsi que l'équipement et l'âge de la cuisine, les objets nos 31 et 51 présentent les mêmes caractéristiques que l'objet n° 27. Comme ce dernier, ces deux exemples ne pouvaient donc être considérés comme comparables à l'appartement occupé par les intimés.
En conclusion, la cour cantonale n'a pas méconnu les principes découlant de l'<ref-law> et de l'<ref-law> en écartant de la comparaison les six appartements précités.
3.2.3 Sur les vingt-et-un objets comparatifs finalement produits par la recourante, la Chambre des baux et loyers en a éliminé à juste titre dix-huit, soit un parce qu'il est situé hors du quartier déterminant (exemple n° 46; consid. 3.2.1 supra), neuf parce qu'ils se trouvent dans un immeuble construit plus de vingt ans avant ou après le bâtiment de référence (nos 16, 22, 23ter, 23quinquies, 23sexies, 32, 47, 48 et 49; consid. 3.2.2 supra), deux en raison de leur surface se différenciant trop de celle de l'appartement à comparer (nos 34 et 50; consid. 3.2.2 supra) et six pour des motifs liés à l'état et à l'équipement du logement (nos 10, 12, 15, 27, 31 et 51 consid. 3.2.2 supra). Il reste ainsi trois objets (nos 11, 21 et 33), ce qui, en tout état de cause, ne constitue pas un nombre suffisant d'exemples permettant d'établir les loyers usuels du quartier conformément à la jurisprudence citée plus haut (consid. 3.2).
C'est le lieu de rappeler, comme la recourante le reconnaît du reste, que d'autres éléments de comparaison ne peuvent être déduits de manière assez précise des statistiques genevoises. En effet, le Tribunal fédéral a eu l'occasion de juger à plusieurs reprises que les statistiques cantonales genevoises ne constituaient pas des statistiques au sens de l'<ref-law>, faute de données suffisamment différenciées sur les éléments essentiels nécessaires à des comparaisons concluantes, à savoir l'emplacement, la dimension, l'équipement, l'état et l'année de construction (<ref-ruling> consid. 4c/cc p. 324 s.; arrêt 4A_472/2007 du 11 mars 2008 consid. 2.4; cf. également arrêt 4A_3/2011 du 28 février 2011 consid. 5.1; arrêt 4A_250/2012 du 28 août 2012 consid. 2.4). Il ne saurait dès lors être question de confirmer, au moyen de statistiques non relevantes, l'"impression d'ensemble" qui, selon la recourante, se dégagerait des objets décrits sur les fiches produites et qui, de toute manière, n'est pas pertinente.
4. Sur le vu de ce qui précède, le recours doit être rejeté.
En conséquence, la recourante prendra à sa charge les frais judiciaires (<ref-law>) et versera des dépens aux intimés (art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté.
2. Les frais judiciaires, arrêtés à 2'500 fr., sont mis à la charge de la recourante.
3. La recourante versera aux intimés, créanciers solidaires, une indemnité de 3'000 fr. à titre de dépens.
4. Le présent arrêt est communiqué aux mandataires des parties et à la Chambre des baux et loyers de la Cour de justice du canton de Genève.
Lausanne, le 19 février 2013
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: Klett
La Greffière: Godat Zimmermann